.include "asm/macros.inc" .syntax unified .text thumb_func_start memcpy memcpy: push {r4,r5,lr} adds r5, r0, 0 adds r4, r5, 0 adds r3, r1, 0 cmp r2, 0xF bls _080B2700 adds r0, r3, 0 orrs r0, r5 movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _080B2700 adds r1, r5, 0 _080B26DA: ldm r3!, {r0} stm r1!, {r0} ldm r3!, {r0} stm r1!, {r0} ldm r3!, {r0} stm r1!, {r0} ldm r3!, {r0} stm r1!, {r0} subs r2, 0x10 cmp r2, 0xF bhi _080B26DA cmp r2, 0x3 bls _080B26FE _080B26F4: ldm r3!, {r0} stm r1!, {r0} subs r2, 0x4 cmp r2, 0x3 bhi _080B26F4 _080B26FE: adds r4, r1, 0 _080B2700: subs r2, 0x1 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _080B271A adds r1, r0, 0 _080B270C: ldrb r0, [r3] strb r0, [r4] adds r3, 0x1 adds r4, 0x1 subs r2, 0x1 cmp r2, r1 bne _080B270C _080B271A: adds r0, r5, 0 pop {r4,r5,pc} thumb_func_end memcpy thumb_func_start memset memset: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r3, r5, 0 cmp r2, 0x3 bls _080B2766 movs r0, 0x3 ands r0, r5 cmp r0, 0 bne _080B2766 adds r1, r5, 0 movs r0, 0xFF ands r4, r0 lsls r3, r4, 8 orrs r3, r4 lsls r0, r3, 16 orrs r3, r0 cmp r2, 0xF bls _080B275A _080B2746: stm r1!, {r3} stm r1!, {r3} stm r1!, {r3} stm r1!, {r3} subs r2, 0x10 cmp r2, 0xF bhi _080B2746 b _080B275A _080B2756: stm r1!, {r3} subs r2, 0x4 _080B275A: cmp r2, 0x3 bhi _080B2756 adds r3, r1, 0 b _080B2766 _080B2762: strb r4, [r3] adds r3, 0x1 _080B2766: adds r0, r2, 0 subs r2, 0x1 cmp r0, 0 bne _080B2762 adds r0, r5, 0 pop {r4,r5,pc} thumb_func_end memset thumb_func_start _sprintf_r _sprintf_r: push {r2,r3} push {r4,r5,lr} sub sp, 0x58 ldr r4, [sp, 0x64] mov r3, sp movs r5, 0 movs r2, 0x82 lsls r2, 2 strh r2, [r3, 0xC] str r1, [sp] str r1, [sp, 0x10] ldr r1, _080B27AC str r1, [sp, 0x8] str r1, [sp, 0x14] str r0, [sp, 0x54] add r2, sp, 0x68 mov r0, sp adds r1, r4, 0 bl vfprintf ldr r1, [sp] strb r5, [r1] add sp, 0x58 pop {r4,r5} pop {r3} add sp, 0x8 bx r3 .align 2, 0 _080B27AC: .4byte 0x7fffffff thumb_func_end _sprintf_r thumb_func_start sprintf sprintf: push {r1-r3} push {r4,lr} sub sp, 0x58 ldr r1, [sp, 0x60] mov r3, sp movs r4, 0 movs r2, 0x82 lsls r2, 2 strh r2, [r3, 0xC] str r0, [sp] str r0, [sp, 0x10] ldr r0, _080B27E8 str r0, [sp, 0x8] str r0, [sp, 0x14] ldr r0, _080B27EC ldr r0, [r0] str r0, [sp, 0x54] add r2, sp, 0x64 mov r0, sp bl vfprintf ldr r1, [sp] strb r4, [r1] add sp, 0x58 pop {r4} pop {r3} add sp, 0xC bx r3 .align 2, 0 _080B27E8: .4byte 0x7fffffff _080B27EC: .4byte gUnknown_203B7A8 thumb_func_end sprintf thumb_func_start strcat strcat: push {r4-r6,lr} adds r2, r0, 0 adds r6, r1, 0 adds r4, r2, 0 movs r0, 0x3 ands r0, r4 cmp r0, 0 bne _080B2826 ldr r1, [r4] ldr r5, _080B280C adds r0, r1, r5 bics r0, r1 ldr r3, _080B2810 b _080B281C .align 2, 0 _080B280C: .4byte 0xfefefeff _080B2810: .4byte 0x80808080 _080B2814: adds r2, 0x4 ldr r1, [r2] adds r0, r1, r5 bics r0, r1 _080B281C: ands r0, r3 cmp r0, 0 beq _080B2814 b _080B2826 _080B2824: adds r2, 0x1 _080B2826: ldrb r0, [r2] cmp r0, 0 bne _080B2824 adds r0, r2, 0 adds r1, r6, 0 bl strcpy adds r0, r4, 0 pop {r4-r6,pc} thumb_func_end strcat thumb_func_start strcmp strcmp: push {r4,r5,lr} adds r2, r0, 0 adds r3, r1, 0 orrs r0, r3 movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _080B287E ldr r1, [r2] ldr r0, [r3] cmp r1, r0 bne _080B287E ldr r5, _080B2864 ldr r4, _080B2868 _080B2854: ldr r1, [r2] adds r0, r1, r5 bics r0, r1 ands r0, r4 cmp r0, 0 beq _080B286C movs r0, 0 b _080B2890 .align 2, 0 _080B2864: .4byte 0xfefefeff _080B2868: .4byte 0x80808080 _080B286C: adds r2, 0x4 adds r3, 0x4 ldr r1, [r2] ldr r0, [r3] cmp r1, r0 beq _080B2854 b _080B287E _080B287A: adds r2, 0x1 adds r3, 0x1 _080B287E: ldrb r0, [r2] cmp r0, 0 beq _080B288A ldrb r1, [r3] cmp r0, r1 beq _080B287A _080B288A: ldrb r2, [r2] ldrb r3, [r3] subs r0, r2, r3 _080B2890: pop {r4,r5,pc} thumb_func_end strcmp thumb_func_start strcpy strcpy: push {r4-r6,lr} adds r6, r0, 0 adds r3, r6, 0 adds r2, r1, 0 adds r0, r2, 0 orrs r0, r6 movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _080B28CC ldr r1, [r2] ldr r5, _080B28B4 adds r0, r1, r5 bics r0, r1 ldr r4, _080B28B8 b _080B28C6 .align 2, 0 _080B28B4: .4byte 0xfefefeff _080B28B8: .4byte 0x80808080 _080B28BC: ldm r2!, {r0} stm r3!, {r0} ldr r1, [r2] adds r0, r1, r5 bics r0, r1 _080B28C6: ands r0, r4 cmp r0, 0 beq _080B28BC _080B28CC: ldrb r0, [r2] strb r0, [r3] lsls r0, 24 adds r2, 0x1 adds r3, 0x1 cmp r0, 0 bne _080B28CC adds r0, r6, 0 pop {r4-r6,pc} thumb_func_end strcpy thumb_func_start strlen strlen: push {r4,r5,lr} adds r1, r0, 0 adds r5, r1, 0 movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _080B2918 adds r2, r1, 0 ldr r1, [r2] ldr r4, _080B28FC adds r0, r1, r4 bics r0, r1 ldr r3, _080B2900 b _080B290C .align 2, 0 _080B28FC: .4byte 0xfefefeff _080B2900: .4byte 0x80808080 _080B2904: adds r2, 0x4 ldr r1, [r2] adds r0, r1, r4 bics r0, r1 _080B290C: ands r0, r3 cmp r0, 0 beq _080B2904 adds r1, r2, 0 b _080B2918 _080B2916: adds r1, 0x1 _080B2918: ldrb r0, [r1] cmp r0, 0 bne _080B2916 subs r0, r1, r5 pop {r4,r5,pc} thumb_func_end strlen thumb_func_start strncpy strncpy: push {r4-r7,lr} adds r7, r0, 0 adds r4, r7, 0 adds r3, r1, 0 adds r0, r3, 0 orrs r0, r7 movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _080B2966 cmp r2, 0x3 bls _080B2966 ldr r1, [r3] ldr r6, _080B2948 adds r0, r1, r6 bics r0, r1 ldr r5, _080B294C b _080B2960 .align 2, 0 _080B2948: .4byte 0xfefefeff _080B294C: .4byte 0x80808080 _080B2950: subs r2, 0x4 ldm r3!, {r0} stm r4!, {r0} cmp r2, 0x3 bls _080B2966 ldr r1, [r3] adds r0, r1, r6 bics r0, r1 _080B2960: ands r0, r5 cmp r0, 0 beq _080B2950 _080B2966: cmp r2, 0 beq _080B297A subs r2, 0x1 ldrb r0, [r3] strb r0, [r4] lsls r0, 24 adds r3, 0x1 adds r4, 0x1 cmp r0, 0 bne _080B2966 _080B297A: adds r0, r2, 0 subs r2, 0x1 cmp r0, 0 beq _080B2990 movs r1, 0 _080B2984: strb r1, [r4] adds r4, 0x1 adds r0, r2, 0 subs r2, 0x1 cmp r0, 0 bne _080B2984 _080B2990: adds r0, r7, 0 pop {r4-r7,pc} thumb_func_end strncpy thumb_func_start __sprint __sprint: push {r4,lr} adds r4, r1, 0 ldr r1, [r4, 0x8] cmp r1, 0 beq _080B29AC adds r1, r4, 0 bl sub_80B4EA4 movs r1, 0 str r1, [r4, 0x8] str r1, [r4, 0x4] b _080B29B0 _080B29AC: str r1, [r4, 0x4] movs r0, 0 _080B29B0: pop {r4,pc} thumb_func_end __sprint thumb_func_start __sbprintf __sbprintf: push {r4,r5,lr} ldr r4, _080B2A24 add sp, r4 adds r5, r0, 0 ldr r0, [r5, 0x54] str r0, [sp, 0x54] mov r3, sp movs r0, 0x3 negs r0, r0 ldrh r4, [r5, 0xC] ands r0, r4 movs r4, 0 strh r0, [r3, 0xC] ldrh r0, [r5, 0xE] strh r0, [r3, 0xE] ldr r0, [r5, 0x1C] str r0, [sp, 0x1C] ldr r0, [r5, 0x24] str r0, [sp, 0x24] add r0, sp, 0x58 str r0, [sp] str r0, [sp, 0x10] movs r0, 0x80 lsls r0, 3 str r0, [sp, 0x8] str r0, [sp, 0x14] str r4, [sp, 0x18] mov r0, sp bl vfprintf adds r4, r0, 0 cmp r4, 0 blt _080B2A04 mov r0, sp bl sub_80B4A34 cmp r0, 0 beq _080B2A04 movs r4, 0x1 negs r4, r4 _080B2A04: mov r1, sp movs r0, 0x40 ldrh r1, [r1, 0xC] ands r0, r1 cmp r0, 0 beq _080B2A18 movs r0, 0x40 ldrh r1, [r5, 0xC] orrs r0, r1 strh r0, [r5, 0xC] _080B2A18: adds r0, r4, 0 movs r3, 0x8B lsls r3, 3 add sp, r3 pop {r4,r5,pc} .align 2, 0 _080B2A24: .4byte 0xfffffba8 thumb_func_end __sbprintf thumb_func_start vfprintf vfprintf: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 ldr r0, [r4, 0x54] adds r1, r4, 0 adds r2, r5, 0 bl _vfprintf_r pop {r4,r5,pc} thumb_func_end vfprintf thumb_func_start _vfprintf_r _vfprintf_r: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _080B2AA4 add sp, r4 str r0, [sp, 0x1DC] str r1, [sp, 0x1E0] adds r4, r2, 0 mov r10, r3 bl sub_80B516C ldr r0, [r0] str r0, [sp, 0x1F8] movs r1, 0 add r0, sp, 0x1D0 str r1, [r0] ldr r1, [sp, 0x1E0] ldr r0, [r1, 0x54] cmp r0, 0 bne _080B2A6E ldr r0, _080B2AA8 ldr r0, [r0] str r0, [r1, 0x54] _080B2A6E: ldr r2, [sp, 0x1E0] ldr r1, [r2, 0x54] ldr r0, [r1, 0x38] cmp r0, 0 bne _080B2A7E adds r0, r1, 0 bl sub_80B4BC4 _080B2A7E: movs r0, 0x8 ldr r1, [sp, 0x1E0] ldrh r1, [r1, 0xC] ands r0, r1 cmp r0, 0 beq _080B2A92 ldr r2, [sp, 0x1E0] ldr r0, [r2, 0x10] cmp r0, 0 bne _080B2AAC _080B2A92: ldr r0, [sp, 0x1E0] bl sub_80B3B34 cmp r0, 0 beq _080B2AAC movs r0, 0x1 negs r0, r0 bl _080B398C .align 2, 0 _080B2AA4: .4byte 0xfffffde0 _080B2AA8: .4byte gUnknown_203B7A8 _080B2AAC: movs r0, 0x1A ldr r1, [sp, 0x1E0] ldrh r1, [r1, 0xC] ands r0, r1 cmp r0, 0xA bne _080B2AD0 ldr r2, [sp, 0x1E0] movs r1, 0xE ldrsh r0, [r2, r1] cmp r0, 0 blt _080B2AD0 adds r0, r2, 0 adds r1, r4, 0 mov r2, r10 bl __sbprintf bl _080B398C _080B2AD0: str r4, [sp, 0x1E4] add r1, sp, 0x1C add r5, sp, 0x28 str r5, [sp, 0x1C] movs r0, 0 str r0, [r1, 0x8] str r0, [r1, 0x4] movs r2, 0 str r2, [sp, 0x1F0] mov r9, r1 movs r4, 0xE6 lsls r4, 1 add r4, sp str r4, [sp, 0x214] movs r0, 0xE8 lsls r0, 1 add r0, sp str r0, [sp, 0x218] _080B2AF4: ldr r1, [sp, 0x1E4] mov r8, r1 _080B2AF8: ldr r0, _080B2BA4 ldr r0, [r0] ldr r1, _080B2BA8 ldr r3, [r1] ldr r2, [sp, 0x218] str r2, [sp] ldr r1, [sp, 0x214] ldr r2, [sp, 0x1E4] bl sub_80B5774 adds r4, r0, 0 cmp r4, 0 ble _080B2B26 ldr r0, [sp, 0x1E4] adds r0, r4 str r0, [sp, 0x1E4] add r0, sp, 0x1CC ldr r0, [r0] cmp r0, 0x25 bne _080B2AF8 ldr r1, [sp, 0x1E4] subs r1, 0x1 str r1, [sp, 0x1E4] _080B2B26: ldr r2, [sp, 0x1E4] mov r0, r8 subs r6, r2, r0 cmp r6, 0 beq _080B2B5E str r0, [r5] str r6, [r5, 0x4] mov r1, r9 ldr r0, [r1, 0x8] adds r0, r6 str r0, [r1, 0x8] adds r5, 0x8 ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] cmp r0, 0x7 ble _080B2B58 ldr r0, [sp, 0x1E0] bl __sprint cmp r0, 0 beq _080B2B56 bl _080B3978 _080B2B56: add r5, sp, 0x28 _080B2B58: ldr r2, [sp, 0x1F0] adds r2, r6 str r2, [sp, 0x1F0] _080B2B5E: cmp r4, 0 bgt _080B2B66 bl _080B3960 _080B2B66: ldr r4, [sp, 0x1E4] adds r4, 0x1 str r4, [sp, 0x1E4] movs r0, 0 str r0, [sp, 0x1EC] movs r1, 0 str r1, [sp, 0x208] movs r2, 0 str r2, [sp, 0x1F4] movs r6, 0x1 negs r6, r6 ldr r0, _080B2BAC add r0, sp strb r2, [r0] _080B2B82: ldr r0, [sp, 0x1E4] ldrb r0, [r0] str r0, [sp, 0x1E8] ldr r1, [sp, 0x1E4] adds r1, 0x1 str r1, [sp, 0x1E4] _080B2B8E: ldr r0, [sp, 0x1E8] subs r0, 0x20 cmp r0, 0x58 bls _080B2B98 b _080B324A _080B2B98: lsls r0, 2 ldr r1, _080B2BB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B2BA4: .4byte gUnknown_203B7A8 _080B2BA8: .4byte gUnknown_203B7AC _080B2BAC: .4byte 0x000001c9 _080B2BB0: .4byte _080B2BB4 .align 2, 0 _080B2BB4: .4byte _080B2D18 .4byte _080B324A .4byte _080B324A .4byte _080B2D30 .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B2D34 .4byte _080B2D4E .4byte _080B324A .4byte _080B2D4A .4byte _080B2D5C .4byte _080B324A .4byte _080B2DBC .4byte _080B2DC0 .4byte _080B2DC0 .4byte _080B2DC0 .4byte _080B2DC0 .4byte _080B2DC0 .4byte _080B2DC0 .4byte _080B2DC0 .4byte _080B2DC0 .4byte _080B2DC0 .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B2E2A .4byte _080B2E7C .4byte _080B324A .4byte _080B2E7C .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B2DE4 .4byte _080B324A .4byte _080B324A .4byte _080B3032 .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B30CA .4byte _080B324A .4byte _080B324A .4byte _080B3106 .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B324A .4byte _080B2E18 .4byte _080B2E32 .4byte _080B2E7C .4byte _080B2E7C .4byte _080B2E7C .4byte _080B2DE8 .4byte _080B2E32 .4byte _080B324A .4byte _080B324A .4byte _080B2DEC .4byte _080B324A .4byte _080B2FEC .4byte _080B303A .4byte _080B3068 .4byte _080B2E0E .4byte _080B324A .4byte _080B3088 .4byte _080B324A .4byte _080B30D2 .4byte _080B324A .4byte _080B324A .4byte _080B3110 _080B2D18: ldr r1, _080B2D2C add r1, sp ldrb r0, [r1] cmp r0, 0 beq _080B2D24 b _080B2B82 _080B2D24: movs r0, 0x20 strb r0, [r1] b _080B2B82 .align 2, 0 _080B2D2C: .4byte 0x000001c9 _080B2D30: movs r0, 0x1 b _080B2DFC _080B2D34: movs r4, 0x4 add r10, r4 mov r0, r10 subs r0, 0x4 ldr r0, [r0] str r0, [sp, 0x1F4] cmp r0, 0 blt _080B2D46 b _080B2B82 _080B2D46: negs r0, r0 str r0, [sp, 0x1F4] _080B2D4A: movs r0, 0x4 b _080B2E10 _080B2D4E: ldr r1, _080B2D58 add r1, sp movs r0, 0x2B strb r0, [r1] b _080B2B82 .align 2, 0 _080B2D58: .4byte 0x000001c9 _080B2D5C: ldr r2, [sp, 0x1E4] ldrb r2, [r2] str r2, [sp, 0x1E8] ldr r4, [sp, 0x1E4] adds r4, 0x1 str r4, [sp, 0x1E4] cmp r2, 0x2A bne _080B2D86 movs r0, 0x4 add r10, r0 mov r0, r10 subs r0, 0x4 ldr r4, [r0] adds r6, r4, 0 movs r0, 0x1 negs r0, r0 cmp r6, r0 blt _080B2D82 b _080B2B82 _080B2D82: adds r6, r0, 0 b _080B2B82 _080B2D86: movs r4, 0 ldr r0, [sp, 0x1E8] b _080B2DA6 _080B2D8C: lsls r0, r4, 2 adds r0, r4 lsls r0, 1 subs r0, 0x30 ldr r1, [sp, 0x1E8] adds r4, r0, r1 ldr r2, [sp, 0x1E4] ldrb r2, [r2] str r2, [sp, 0x1E8] ldr r0, [sp, 0x1E4] adds r0, 0x1 str r0, [sp, 0x1E4] adds r0, r2, 0 _080B2DA6: subs r0, 0x30 cmp r0, 0x9 bls _080B2D8C adds r6, r4, 0 movs r0, 0x1 negs r0, r0 cmp r6, r0 blt _080B2DB8 b _080B2B8E _080B2DB8: adds r6, r0, 0 b _080B2B8E _080B2DBC: movs r0, 0x80 b _080B2E10 _080B2DC0: movs r4, 0 _080B2DC2: lsls r0, r4, 2 adds r0, r4 lsls r0, 1 subs r0, 0x30 ldr r2, [sp, 0x1E8] adds r4, r0, r2 ldr r0, [sp, 0x1E4] ldrb r0, [r0] str r0, [sp, 0x1E8] ldr r1, [sp, 0x1E4] adds r1, 0x1 str r1, [sp, 0x1E4] subs r0, 0x30 cmp r0, 0x9 bls _080B2DC2 str r4, [sp, 0x1F4] b _080B2B8E _080B2DE4: movs r0, 0x8 b _080B2DFC _080B2DE8: movs r0, 0x40 b _080B2E06 _080B2DEC: ldr r0, [sp, 0x1E4] ldrb r0, [r0] cmp r0, 0x6C bne _080B2E04 ldr r1, [sp, 0x1E4] adds r1, 0x1 str r1, [sp, 0x1E4] movs r0, 0x20 _080B2DFC: ldr r2, [sp, 0x1EC] orrs r2, r0 str r2, [sp, 0x1EC] b _080B2B82 _080B2E04: movs r0, 0x10 _080B2E06: ldr r4, [sp, 0x1EC] orrs r4, r0 str r4, [sp, 0x1EC] b _080B2B82 _080B2E0E: movs r0, 0x20 _080B2E10: ldr r1, [sp, 0x1EC] orrs r1, r0 str r1, [sp, 0x1EC] b _080B2B82 _080B2E18: add r2, sp, 0x68 mov r8, r2 movs r4, 0x4 add r10, r4 mov r0, r10 subs r0, 0x4 ldr r0, [r0] strb r0, [r2] b _080B3258 _080B2E2A: movs r0, 0x10 ldr r1, [sp, 0x1EC] orrs r1, r0 str r1, [sp, 0x1EC] _080B2E32: movs r0, 0x10 ldr r2, [sp, 0x1EC] ands r0, r2 cmp r0, 0 beq _080B2E42 movs r4, 0x4 add r10, r4 b _080B2E5E _080B2E42: movs r0, 0x40 ldr r1, [sp, 0x1EC] ands r0, r1 cmp r0, 0 beq _080B2E5A movs r2, 0x4 add r10, r2 mov r0, r10 subs r0, 0x4 movs r1, 0 ldrsh r4, [r0, r1] b _080B2E64 _080B2E5A: movs r2, 0x4 add r10, r2 _080B2E5E: mov r0, r10 subs r0, 0x4 ldr r4, [r0] _080B2E64: cmp r4, 0 bge _080B2E72 negs r4, r4 ldr r1, _080B2E78 add r1, sp movs r0, 0x2D strb r0, [r1] _080B2E72: movs r2, 0x1 b _080B315E .align 2, 0 _080B2E78: .4byte 0x000001c9 _080B2E7C: movs r0, 0x1 negs r0, r0 cmp r6, r0 bne _080B2E88 movs r6, 0x6 b _080B2E98 _080B2E88: ldr r4, [sp, 0x1E8] cmp r4, 0x67 beq _080B2E92 cmp r4, 0x47 bne _080B2E98 _080B2E92: cmp r6, 0 bne _080B2E98 movs r6, 0x1 _080B2E98: movs r0, 0x8 ldr r1, [sp, 0x1EC] ands r0, r1 movs r2, 0x8 add r10, r2 mov r0, r10 subs r0, 0x8 ldr r1, [r0] ldr r2, [r0, 0x4] str r1, [sp, 0x1FC] str r2, [sp, 0x200] ldr r0, [sp, 0x1FC] ldr r1, [sp, 0x200] bl sub_80B6180 cmp r0, 0 beq _080B2EEC ldr r3, _080B2EE0 ldr r2, _080B2EDC ldr r0, [sp, 0x1FC] ldr r1, [sp, 0x200] bl __ltdf2 cmp r0, 0 bge _080B2ED2 ldr r1, _080B2EE4 add r1, sp movs r0, 0x2D strb r0, [r1] _080B2ED2: ldr r2, _080B2EE8 mov r8, r2 movs r3, 0x3 b _080B3262 .align 2, 0 _080B2EDC: .4byte 0x00000000 _080B2EE0: .4byte 0x00000000 _080B2EE4: .4byte 0x000001c9 _080B2EE8: .4byte gUnknown_826FE04 _080B2EEC: ldr r0, [sp, 0x1FC] ldr r1, [sp, 0x200] bl sub_80B61A4 cmp r0, 0 beq _080B2F04 ldr r4, _080B2F00 mov r8, r4 movs r3, 0x3 b _080B3262 .align 2, 0 _080B2F00: .4byte gUnknown_826FE08 _080B2F04: movs r0, 0x80 lsls r0, 1 ldr r1, [sp, 0x1EC] orrs r1, r0 str r1, [sp, 0x1EC] str r1, [sp] add r0, sp, 0x1C8 str r0, [sp, 0x4] add r0, sp, 0x1D4 str r0, [sp, 0x8] ldr r2, [sp, 0x1E8] str r2, [sp, 0xC] add r0, sp, 0x1D8 str r0, [sp, 0x10] ldr r0, [sp, 0x1DC] ldr r1, [sp, 0x1FC] ldr r2, [sp, 0x200] adds r3, r6, 0 bl sub_80B399C mov r8, r0 ldr r4, [sp, 0x1E8] cmp r4, 0x67 beq _080B2F38 cmp r4, 0x47 bne _080B2F5A _080B2F38: add r0, sp, 0x1D4 ldr r1, [r0] movs r0, 0x4 negs r0, r0 cmp r1, r0 ble _080B2F48 cmp r1, r6 ble _080B2F56 _080B2F48: movs r0, 0x45 ldr r1, [sp, 0x1E8] cmp r1, 0x67 bne _080B2F52 movs r0, 0x65 _080B2F52: str r0, [sp, 0x1E8] b _080B2F5A _080B2F56: movs r2, 0x67 str r2, [sp, 0x1E8] _080B2F5A: ldr r4, [sp, 0x1E8] cmp r4, 0x65 bgt _080B2F80 add r0, sp, 0x1D4 ldr r1, [r0] subs r1, 0x1 str r1, [r0] add r0, sp, 0x14 ldr r2, [sp, 0x1E8] bl sub_80B3A90 str r0, [sp, 0x204] add r0, sp, 0x1D8 ldr r0, [r0] ldr r1, [sp, 0x204] adds r3, r1, r0 cmp r0, 0x1 bgt _080B2FC0 b _080B2FB6 _080B2F80: ldr r4, [sp, 0x1E8] cmp r4, 0x66 bne _080B2FA8 add r0, sp, 0x1D4 ldr r0, [r0] cmp r0, 0 ble _080B2FA4 adds r3, r0, 0 cmp r6, 0 bne _080B2F9E movs r0, 0x1 ldr r1, [sp, 0x1EC] ands r0, r1 cmp r0, 0 beq _080B2FD0 _080B2F9E: adds r0, r3, 0x1 adds r3, r0, r6 b _080B2FD0 _080B2FA4: adds r3, r6, 0x2 b _080B2FD0 _080B2FA8: add r0, sp, 0x1D4 ldr r1, [r0] add r0, sp, 0x1D8 ldr r0, [r0] cmp r1, r0 blt _080B2FC4 adds r3, r1, 0 _080B2FB6: movs r0, 0x1 ldr r2, [sp, 0x1EC] ands r0, r2 cmp r0, 0 beq _080B2FD0 _080B2FC0: adds r3, 0x1 b _080B2FD0 _080B2FC4: cmp r1, 0 bgt _080B2FCE adds r0, 0x2 subs r3, r0, r1 b _080B2FD0 _080B2FCE: adds r3, r0, 0x1 _080B2FD0: add r0, sp, 0x1C8 ldrb r0, [r0] adds r7, r5, 0 adds r7, 0x8 cmp r0, 0 bne _080B2FDE b _080B3266 _080B2FDE: ldr r1, _080B2FE8 add r1, sp movs r0, 0x2D strb r0, [r1] b _080B3266 .align 2, 0 _080B2FE8: .4byte 0x000001c9 _080B2FEC: movs r0, 0x10 ldr r4, [sp, 0x1EC] ands r0, r4 cmp r0, 0 beq _080B3006 movs r0, 0x4 add r10, r0 mov r0, r10 subs r0, 0x4 ldr r0, [r0] ldr r1, [sp, 0x1F0] str r1, [r0] b _080B2AF4 _080B3006: movs r0, 0x40 ldr r2, [sp, 0x1EC] ands r2, r0 cmp r2, 0 beq _080B3022 movs r4, 0x4 add r10, r4 mov r0, r10 subs r0, 0x4 ldr r0, [r0] add r1, sp, 0x1F0 ldrh r1, [r1] strh r1, [r0] b _080B2AF4 _080B3022: movs r2, 0x4 add r10, r2 mov r0, r10 subs r0, 0x4 ldr r0, [r0] ldr r4, [sp, 0x1F0] str r4, [r0] b _080B2AF4 _080B3032: movs r0, 0x10 ldr r1, [sp, 0x1EC] orrs r1, r0 str r1, [sp, 0x1EC] _080B303A: movs r0, 0x10 ldr r2, [sp, 0x1EC] ands r0, r2 cmp r0, 0 bne _080B305A movs r0, 0x40 ldr r1, [sp, 0x1EC] ands r0, r1 cmp r0, 0 beq _080B305A movs r2, 0x4 add r10, r2 mov r0, r10 subs r0, 0x4 ldrh r4, [r0] b _080B3064 _080B305A: movs r4, 0x4 add r10, r4 mov r0, r10 subs r0, 0x4 ldr r4, [r0] _080B3064: movs r2, 0 b _080B3156 _080B3068: movs r0, 0x4 add r10, r0 mov r0, r10 subs r0, 0x4 ldr r4, [r0] movs r2, 0x2 ldr r1, _080B3084 str r1, [sp, 0x210] ldr r0, [sp, 0x1EC] orrs r0, r2 str r0, [sp, 0x1EC] movs r1, 0x78 str r1, [sp, 0x1E8] b _080B3156 .align 2, 0 _080B3084: .4byte gUnknown_826FE0C _080B3088: movs r2, 0x4 add r10, r2 mov r0, r10 subs r0, 0x4 ldr r0, [r0] mov r8, r0 cmp r0, 0 bne _080B309C ldr r4, _080B30BC mov r8, r4 _080B309C: cmp r6, 0 blt _080B30C0 mov r0, r8 movs r1, 0 adds r2, r6, 0 bl sub_80B57A0 cmp r0, 0 beq _080B30B8 mov r1, r8 subs r3, r0, r1 cmp r3, r6 bgt _080B30B8 b _080B325A _080B30B8: adds r3, r6, 0 b _080B325A .align 2, 0 _080B30BC: .4byte gUnknown_826FE20 _080B30C0: mov r0, r8 bl strlen adds r3, r0, 0 b _080B325A _080B30CA: movs r0, 0x10 ldr r2, [sp, 0x1EC] orrs r2, r0 str r2, [sp, 0x1EC] _080B30D2: movs r0, 0x10 ldr r4, [sp, 0x1EC] ands r0, r4 cmp r0, 0 beq _080B30E2 movs r0, 0x4 add r10, r0 b _080B30FC _080B30E2: movs r0, 0x40 ldr r1, [sp, 0x1EC] ands r0, r1 cmp r0, 0 beq _080B30F8 movs r2, 0x4 add r10, r2 mov r0, r10 subs r0, 0x4 ldrh r4, [r0] b _080B3102 _080B30F8: movs r4, 0x4 add r10, r4 _080B30FC: mov r0, r10 subs r0, 0x4 ldr r4, [r0] _080B3102: movs r2, 0x1 b _080B3156 _080B3106: ldr r0, _080B310C str r0, [sp, 0x210] b _080B3114 .align 2, 0 _080B310C: .4byte gUnknown_826FE28 _080B3110: ldr r1, _080B3134 str r1, [sp, 0x210] _080B3114: movs r0, 0x10 ldr r2, [sp, 0x1EC] ands r0, r2 cmp r0, 0 bne _080B3138 movs r0, 0x40 ldr r1, [sp, 0x1EC] ands r0, r1 cmp r0, 0 beq _080B3138 movs r2, 0x4 add r10, r2 mov r0, r10 subs r0, 0x4 ldrh r4, [r0] b _080B3142 .align 2, 0 _080B3134: .4byte gUnknown_826FE0C _080B3138: movs r4, 0x4 add r10, r4 mov r0, r10 subs r0, 0x4 ldr r4, [r0] _080B3142: movs r2, 0x2 movs r0, 0x1 ldr r1, [sp, 0x1EC] ands r0, r1 cmp r0, 0 beq _080B3156 cmp r4, 0 beq _080B3156 orrs r1, r2 str r1, [sp, 0x1EC] _080B3156: ldr r1, _080B31A0 add r1, sp movs r0, 0 strb r0, [r1] _080B315E: str r6, [sp, 0x208] cmp r6, 0 blt _080B316E movs r0, 0x81 negs r0, r0 ldr r1, [sp, 0x1EC] ands r1, r0 str r1, [sp, 0x1EC] _080B316E: movs r0, 0xE2 lsls r0, 1 add r0, sp mov r8, r0 cmp r4, 0 bne _080B3184 adds r7, r5, 0 adds r7, 0x8 ldr r1, [sp, 0x208] cmp r1, 0 beq _080B323C _080B3184: cmp r2, 0x1 beq _080B31E2 cmp r2, 0x1 bcc _080B31A8 cmp r2, 0x2 beq _080B321C ldr r2, _080B31A4 mov r8, r2 mov r0, r8 bl strlen adds r3, r0, 0 b _080B3262 .align 2, 0 _080B31A0: .4byte 0x000001c9 _080B31A4: .4byte gUnknown_826FE3C _080B31A8: adds r7, r5, 0 adds r7, 0x8 movs r2, 0x7 _080B31AE: movs r0, 0x1 negs r0, r0 add r8, r0 adds r0, r4, 0 ands r0, r2 adds r1, r0, 0 adds r1, 0x30 mov r0, r8 strb r1, [r0] lsrs r4, 3 cmp r4, 0 bne _080B31AE movs r0, 0x1 ldr r2, [sp, 0x1EC] ands r0, r2 cmp r0, 0 beq _080B323C cmp r1, 0x30 beq _080B323C movs r4, 0x1 negs r4, r4 add r8, r4 movs r0, 0x30 mov r1, r8 strb r0, [r1] b _080B323C _080B31E2: adds r7, r5, 0 adds r7, 0x8 cmp r4, 0x9 bls _080B320C _080B31EA: movs r2, 0x1 negs r2, r2 add r8, r2 adds r0, r4, 0 movs r1, 0xA bl __umodsi3 adds r0, 0x30 mov r1, r8 strb r0, [r1] adds r0, r4, 0 movs r1, 0xA bl sub_80B688C adds r4, r0, 0 cmp r4, 0x9 bhi _080B31EA _080B320C: movs r2, 0x1 negs r2, r2 add r8, r2 adds r0, r4, 0 adds r0, 0x30 mov r4, r8 strb r0, [r4] b _080B323C _080B321C: adds r7, r5, 0 adds r7, 0x8 movs r1, 0xF _080B3222: movs r0, 0x1 negs r0, r0 add r8, r0 adds r0, r4, 0 ands r0, r1 ldr r2, [sp, 0x210] adds r0, r2, r0 ldrb r0, [r0] mov r2, r8 strb r0, [r2] lsrs r4, 4 cmp r4, 0 bne _080B3222 _080B323C: add r4, sp, 0x14 mov r1, r8 subs r0, r4, r1 movs r2, 0xD8 lsls r2, 1 adds r3, r0, r2 b _080B3266 _080B324A: ldr r4, [sp, 0x1E8] cmp r4, 0 bne _080B3252 b _080B3960 _080B3252: add r0, sp, 0x68 mov r8, r0 strb r4, [r0] _080B3258: movs r3, 0x1 _080B325A: ldr r1, _080B3284 add r1, sp movs r0, 0 strb r0, [r1] _080B3262: adds r7, r5, 0 adds r7, 0x8 _080B3266: str r3, [sp, 0x20C] ldr r2, [sp, 0x208] cmp r3, r2 bge _080B3270 str r2, [sp, 0x20C] _080B3270: ldr r0, _080B3284 add r0, sp ldrb r0, [r0] cmp r0, 0 beq _080B3288 ldr r4, [sp, 0x20C] adds r4, 0x1 str r4, [sp, 0x20C] b _080B3298 .align 2, 0 _080B3284: .4byte 0x000001c9 _080B3288: movs r0, 0x2 ldr r1, [sp, 0x1EC] ands r0, r1 cmp r0, 0 beq _080B3298 ldr r2, [sp, 0x20C] adds r2, 0x2 str r2, [sp, 0x20C] _080B3298: movs r0, 0x84 ldr r4, [sp, 0x1EC] ands r0, r4 cmp r0, 0 bne _080B3318 ldr r0, [sp, 0x1F4] ldr r1, [sp, 0x20C] subs r4, r0, r1 cmp r4, 0 ble _080B3318 ldr r1, _080B3344 cmp r4, 0x10 ble _080B32EC mov r6, r9 _080B32B4: str r1, [r5] movs r0, 0x10 str r0, [r5, 0x4] ldr r0, [r6, 0x8] adds r0, 0x10 str r0, [r6, 0x8] adds r5, r7, 0 ldr r0, [r6, 0x4] adds r0, 0x1 str r0, [r6, 0x4] cmp r0, 0x7 ble _080B32E2 ldr r0, [sp, 0x1E0] mov r1, r9 str r3, [sp, 0x21C] bl __sprint ldr r3, [sp, 0x21C] cmp r0, 0 beq _080B32DE b _080B3978 _080B32DE: add r5, sp, 0x28 ldr r1, _080B3344 _080B32E2: subs r4, 0x10 adds r7, r5, 0 adds r7, 0x8 cmp r4, 0x10 bgt _080B32B4 _080B32EC: str r1, [r5] str r4, [r5, 0x4] mov r2, r9 ldr r0, [r2, 0x8] adds r0, r4 str r0, [r2, 0x8] adds r5, r7, 0 ldr r0, [r2, 0x4] adds r0, 0x1 str r0, [r2, 0x4] cmp r0, 0x7 ble _080B3318 ldr r0, [sp, 0x1E0] mov r1, r9 str r3, [sp, 0x21C] bl __sprint ldr r3, [sp, 0x21C] cmp r0, 0 beq _080B3316 b _080B3978 _080B3316: add r5, sp, 0x28 _080B3318: ldr r1, _080B3348 add r1, sp ldrb r0, [r1] cmp r0, 0 beq _080B334C str r1, [r5] movs r0, 0x1 str r0, [r5, 0x4] mov r4, r9 ldr r0, [r4, 0x8] adds r0, 0x1 str r0, [r4, 0x8] adds r5, 0x8 ldr r0, [r4, 0x4] adds r0, 0x1 str r0, [r4, 0x4] cmp r0, 0x7 ble _080B338C ldr r0, [sp, 0x1E0] mov r1, r9 b _080B337C .align 2, 0 _080B3344: .4byte gUnknown_826FDE4 _080B3348: .4byte 0x000001c9 _080B334C: movs r2, 0x2 ldr r0, [sp, 0x1EC] ands r0, r2 cmp r0, 0 beq _080B338C add r1, sp, 0x1C4 movs r0, 0x30 strb r0, [r1] add r0, sp, 0x1E8 ldrb r0, [r0] strb r0, [r1, 0x1] str r1, [r5] str r2, [r5, 0x4] mov r1, r9 ldr r0, [r1, 0x8] adds r0, 0x2 str r0, [r1, 0x8] adds r5, 0x8 ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] cmp r0, 0x7 ble _080B338C ldr r0, [sp, 0x1E0] _080B337C: str r3, [sp, 0x21C] bl __sprint ldr r3, [sp, 0x21C] cmp r0, 0 beq _080B338A b _080B3978 _080B338A: add r5, sp, 0x28 _080B338C: movs r0, 0x84 ldr r2, [sp, 0x1EC] ands r0, r2 cmp r0, 0x80 bne _080B3408 ldr r0, [sp, 0x1F4] ldr r1, [sp, 0x20C] subs r4, r0, r1 cmp r4, 0 ble _080B3408 ldr r1, _080B34A4 cmp r4, 0x10 ble _080B33DC mov r6, r9 _080B33A8: str r1, [r5] movs r0, 0x10 str r0, [r5, 0x4] ldr r0, [r6, 0x8] adds r0, 0x10 str r0, [r6, 0x8] adds r5, 0x8 ldr r0, [r6, 0x4] adds r0, 0x1 str r0, [r6, 0x4] cmp r0, 0x7 ble _080B33D6 ldr r0, [sp, 0x1E0] mov r1, r9 str r3, [sp, 0x21C] bl __sprint ldr r3, [sp, 0x21C] cmp r0, 0 beq _080B33D2 b _080B3978 _080B33D2: add r5, sp, 0x28 ldr r1, _080B34A4 _080B33D6: subs r4, 0x10 cmp r4, 0x10 bgt _080B33A8 _080B33DC: str r1, [r5] str r4, [r5, 0x4] mov r2, r9 ldr r0, [r2, 0x8] adds r0, r4 str r0, [r2, 0x8] adds r5, 0x8 ldr r0, [r2, 0x4] adds r0, 0x1 str r0, [r2, 0x4] cmp r0, 0x7 ble _080B3408 ldr r0, [sp, 0x1E0] mov r1, r9 str r3, [sp, 0x21C] bl __sprint ldr r3, [sp, 0x21C] cmp r0, 0 beq _080B3406 b _080B3978 _080B3406: add r5, sp, 0x28 _080B3408: ldr r0, [sp, 0x208] subs r4, r0, r3 cmp r4, 0 ble _080B3476 ldr r1, _080B34A4 cmp r4, 0x10 ble _080B344C mov r6, r9 _080B3418: str r1, [r5] movs r0, 0x10 str r0, [r5, 0x4] ldr r0, [r6, 0x8] adds r0, 0x10 str r0, [r6, 0x8] adds r5, 0x8 ldr r0, [r6, 0x4] adds r0, 0x1 str r0, [r6, 0x4] cmp r0, 0x7 ble _080B3446 ldr r0, [sp, 0x1E0] mov r1, r9 str r3, [sp, 0x21C] bl __sprint ldr r3, [sp, 0x21C] cmp r0, 0 beq _080B3442 b _080B3978 _080B3442: add r5, sp, 0x28 ldr r1, _080B34A4 _080B3446: subs r4, 0x10 cmp r4, 0x10 bgt _080B3418 _080B344C: str r1, [r5] str r4, [r5, 0x4] mov r1, r9 ldr r0, [r1, 0x8] adds r0, r4 str r0, [r1, 0x8] adds r5, 0x8 ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] cmp r0, 0x7 ble _080B3476 ldr r0, [sp, 0x1E0] str r3, [sp, 0x21C] bl __sprint ldr r3, [sp, 0x21C] cmp r0, 0 beq _080B3474 b _080B3978 _080B3474: add r5, sp, 0x28 _080B3476: movs r0, 0x80 lsls r0, 1 ldr r2, [sp, 0x1EC] ands r0, r2 cmp r0, 0 bne _080B34A8 mov r4, r8 str r4, [r5] str r3, [r5, 0x4] mov r1, r9 ldr r0, [r1, 0x8] adds r0, r3 str r0, [r1, 0x8] adds r5, 0x8 ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] cmp r0, 0x7 bgt _080B349E b _080B38BE _080B349E: ldr r0, [sp, 0x1E0] b _080B38B4 .align 2, 0 _080B34A4: .4byte gUnknown_826FDF4 _080B34A8: ldr r2, [sp, 0x1E8] cmp r2, 0x65 bgt _080B34B0 b _080B3794 _080B34B0: ldr r3, _080B357C ldr r2, _080B3578 ldr r0, [sp, 0x1FC] ldr r1, [sp, 0x200] bl __eqdf2 cmp r0, 0 bne _080B3588 ldr r0, _080B3580 str r0, [r5] movs r6, 0x1 str r6, [r5, 0x4] mov r4, r9 ldr r0, [r4, 0x8] adds r0, 0x1 str r0, [r4, 0x8] adds r5, 0x8 ldr r0, [r4, 0x4] adds r0, 0x1 str r0, [r4, 0x4] cmp r0, 0x7 ble _080B34EC ldr r0, [sp, 0x1E0] mov r1, r9 bl __sprint cmp r0, 0 beq _080B34EA b _080B3978 _080B34EA: add r5, sp, 0x28 _080B34EC: add r0, sp, 0x1D4 ldr r1, [r0] add r4, sp, 0x1D8 ldr r0, [r4] cmp r1, r0 blt _080B3502 ldr r0, [sp, 0x1EC] ands r0, r6 cmp r0, 0 bne _080B3502 b _080B38BE _080B3502: ldr r0, [sp, 0x1F8] str r0, [r5] str r6, [r5, 0x4] mov r1, r9 ldr r0, [r1, 0x8] adds r0, 0x1 str r0, [r1, 0x8] adds r5, 0x8 ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] cmp r0, 0x7 ble _080B352A ldr r0, [sp, 0x1E0] bl __sprint cmp r0, 0 beq _080B3528 b _080B3978 _080B3528: add r5, sp, 0x28 _080B352A: ldr r0, [r4] subs r4, r0, 0x1 cmp r4, 0 bgt _080B3534 b _080B38BE _080B3534: ldr r1, _080B3584 cmp r4, 0x10 ble _080B356C mov r6, r9 _080B353C: str r1, [r5] movs r0, 0x10 str r0, [r5, 0x4] ldr r0, [r6, 0x8] adds r0, 0x10 str r0, [r6, 0x8] adds r5, 0x8 ldr r0, [r6, 0x4] adds r0, 0x1 str r0, [r6, 0x4] cmp r0, 0x7 ble _080B3566 ldr r0, [sp, 0x1E0] mov r1, r9 bl __sprint cmp r0, 0 beq _080B3562 b _080B3978 _080B3562: add r5, sp, 0x28 ldr r1, _080B3584 _080B3566: subs r4, 0x10 cmp r4, 0x10 bgt _080B353C _080B356C: str r1, [r5] str r4, [r5, 0x4] mov r2, r9 ldr r0, [r2, 0x8] adds r0, r4 b _080B38A2 .align 2, 0 _080B3578: .4byte 0x00000000 _080B357C: .4byte 0x00000000 _080B3580: .4byte gUnknown_826FE58 _080B3584: .4byte gUnknown_826FDF4 _080B3588: add r6, sp, 0x1D4 ldr r2, [r6] cmp r2, 0 bgt _080B3670 ldr r0, _080B3668 str r0, [r5] movs r4, 0x1 str r4, [r5, 0x4] mov r1, r9 ldr r0, [r1, 0x8] adds r0, 0x1 str r0, [r1, 0x8] adds r5, 0x8 ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] cmp r0, 0x7 ble _080B35BA ldr r0, [sp, 0x1E0] bl __sprint cmp r0, 0 beq _080B35B8 b _080B3978 _080B35B8: add r5, sp, 0x28 _080B35BA: ldr r2, [sp, 0x1F8] str r2, [r5] str r4, [r5, 0x4] mov r4, r9 ldr r0, [r4, 0x8] adds r0, 0x1 str r0, [r4, 0x8] adds r5, 0x8 ldr r0, [r4, 0x4] adds r0, 0x1 str r0, [r4, 0x4] cmp r0, 0x7 ble _080B35E4 ldr r0, [sp, 0x1E0] mov r1, r9 bl __sprint cmp r0, 0 beq _080B35E2 b _080B3978 _080B35E2: add r5, sp, 0x28 _080B35E4: ldr r0, [r6] negs r4, r0 cmp r4, 0 ble _080B364A ldr r1, _080B366C cmp r4, 0x10 ble _080B3624 mov r6, r9 _080B35F4: str r1, [r5] movs r0, 0x10 str r0, [r5, 0x4] ldr r0, [r6, 0x8] adds r0, 0x10 str r0, [r6, 0x8] adds r5, 0x8 ldr r0, [r6, 0x4] adds r0, 0x1 str r0, [r6, 0x4] cmp r0, 0x7 ble _080B361E ldr r0, [sp, 0x1E0] mov r1, r9 bl __sprint cmp r0, 0 beq _080B361A b _080B3978 _080B361A: add r5, sp, 0x28 ldr r1, _080B366C _080B361E: subs r4, 0x10 cmp r4, 0x10 bgt _080B35F4 _080B3624: str r1, [r5] str r4, [r5, 0x4] mov r1, r9 ldr r0, [r1, 0x8] adds r0, r4 str r0, [r1, 0x8] adds r5, 0x8 ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] cmp r0, 0x7 ble _080B364A ldr r0, [sp, 0x1E0] bl __sprint cmp r0, 0 beq _080B3648 b _080B3978 _080B3648: add r5, sp, 0x28 _080B364A: mov r2, r8 str r2, [r5] add r0, sp, 0x1D8 ldr r1, [r0] str r1, [r5, 0x4] mov r4, r9 ldr r0, [r4, 0x8] adds r0, r1 str r0, [r4, 0x8] adds r5, 0x8 ldr r0, [r4, 0x4] adds r0, 0x1 str r0, [r4, 0x4] b _080B38AC .align 2, 0 _080B3668: .4byte gUnknown_826FE58 _080B366C: .4byte gUnknown_826FDF4 _080B3670: add r4, sp, 0x1D8 ldr r1, [r4] cmp r2, r1 blt _080B372C mov r0, r8 str r0, [r5] str r1, [r5, 0x4] mov r2, r9 ldr r0, [r2, 0x8] adds r0, r1 str r0, [r2, 0x8] adds r5, 0x8 ldr r0, [r2, 0x4] adds r0, 0x1 str r0, [r2, 0x4] cmp r0, 0x7 ble _080B36A2 ldr r0, [sp, 0x1E0] mov r1, r9 bl __sprint cmp r0, 0 beq _080B36A0 b _080B3978 _080B36A0: add r5, sp, 0x28 _080B36A2: ldr r1, [r6] ldr r0, [r4] subs r4, r1, r0 cmp r4, 0 ble _080B370A ldr r1, _080B3724 cmp r4, 0x10 ble _080B36E4 mov r6, r9 _080B36B4: str r1, [r5] movs r0, 0x10 str r0, [r5, 0x4] ldr r0, [r6, 0x8] adds r0, 0x10 str r0, [r6, 0x8] adds r5, 0x8 ldr r0, [r6, 0x4] adds r0, 0x1 str r0, [r6, 0x4] cmp r0, 0x7 ble _080B36DE ldr r0, [sp, 0x1E0] mov r1, r9 bl __sprint cmp r0, 0 beq _080B36DA b _080B3978 _080B36DA: add r5, sp, 0x28 ldr r1, _080B3724 _080B36DE: subs r4, 0x10 cmp r4, 0x10 bgt _080B36B4 _080B36E4: str r1, [r5] str r4, [r5, 0x4] mov r1, r9 ldr r0, [r1, 0x8] adds r0, r4 str r0, [r1, 0x8] adds r5, 0x8 ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] cmp r0, 0x7 ble _080B370A ldr r0, [sp, 0x1E0] bl __sprint cmp r0, 0 beq _080B3708 b _080B3978 _080B3708: add r5, sp, 0x28 _080B370A: movs r1, 0x1 ldr r0, [sp, 0x1EC] ands r0, r1 cmp r0, 0 bne _080B3716 b _080B38BE _080B3716: ldr r0, _080B3728 str r0, [r5] str r1, [r5, 0x4] mov r2, r9 ldr r0, [r2, 0x8] adds r0, 0x1 b _080B38A2 .align 2, 0 _080B3724: .4byte gUnknown_826FDF4 _080B3728: .4byte gUnknown_826FE5C _080B372C: mov r0, r8 str r0, [r5] str r2, [r5, 0x4] mov r1, r9 ldr r0, [r1, 0x8] adds r0, r2 str r0, [r1, 0x8] adds r5, 0x8 ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] cmp r0, 0x7 ble _080B3754 ldr r0, [sp, 0x1E0] bl __sprint cmp r0, 0 beq _080B3752 b _080B3978 _080B3752: add r5, sp, 0x28 _080B3754: ldr r0, [r6] add r8, r0 ldr r0, _080B3790 str r0, [r5] movs r0, 0x1 str r0, [r5, 0x4] mov r2, r9 ldr r0, [r2, 0x8] adds r0, 0x1 str r0, [r2, 0x8] adds r5, 0x8 ldr r0, [r2, 0x4] adds r0, 0x1 str r0, [r2, 0x4] cmp r0, 0x7 ble _080B3784 ldr r0, [sp, 0x1E0] mov r1, r9 bl __sprint cmp r0, 0 beq _080B3782 b _080B3978 _080B3782: add r5, sp, 0x28 _080B3784: mov r0, r8 str r0, [r5] ldr r1, [r4] ldr r0, [r6] subs r1, r0 b _080B389A .align 2, 0 _080B3790: .4byte gUnknown_826FE5C _080B3794: add r4, sp, 0x1D8 ldr r0, [r4] cmp r0, 0x1 bgt _080B37A6 movs r1, 0x1 ldr r0, [sp, 0x1EC] ands r0, r1 cmp r0, 0 beq _080B386C _080B37A6: add r1, sp, 0x1C4 mov r2, r8 ldrb r0, [r2] strb r0, [r1] movs r0, 0x1 add r8, r0 movs r0, 0x2E strb r0, [r1, 0x1] str r1, [r5] movs r0, 0x2 str r0, [r5, 0x4] mov r1, r9 ldr r0, [r1, 0x8] adds r0, 0x2 str r0, [r1, 0x8] adds r5, 0x8 ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] cmp r0, 0x7 ble _080B37DE ldr r0, [sp, 0x1E0] bl __sprint cmp r0, 0 beq _080B37DC b _080B3978 _080B37DC: add r5, sp, 0x28 _080B37DE: ldr r3, _080B3808 ldr r2, _080B3804 ldr r0, [sp, 0x1FC] ldr r1, [sp, 0x200] bl __nedf2 cmp r0, 0 beq _080B380C mov r2, r8 str r2, [r5] ldr r1, [r4] subs r0, r1, 0x1 str r0, [r5, 0x4] mov r4, r9 ldr r0, [r4, 0x8] subs r0, 0x1 adds r0, r1 b _080B3878 .align 2, 0 _080B3804: .4byte 0x00000000 _080B3808: .4byte 0x00000000 _080B380C: ldr r0, [r4] subs r4, r0, 0x1 cmp r4, 0 ble _080B3894 ldr r1, _080B3868 cmp r4, 0x10 ble _080B384C mov r6, r9 _080B381C: str r1, [r5] movs r0, 0x10 str r0, [r5, 0x4] ldr r0, [r6, 0x8] adds r0, 0x10 str r0, [r6, 0x8] adds r5, 0x8 ldr r0, [r6, 0x4] adds r0, 0x1 str r0, [r6, 0x4] cmp r0, 0x7 ble _080B3846 ldr r0, [sp, 0x1E0] mov r1, r9 bl __sprint cmp r0, 0 beq _080B3842 b _080B3978 _080B3842: add r5, sp, 0x28 ldr r1, _080B3868 _080B3846: subs r4, 0x10 cmp r4, 0x10 bgt _080B381C _080B384C: str r1, [r5] str r4, [r5, 0x4] mov r1, r9 ldr r0, [r1, 0x8] adds r0, r4 str r0, [r1, 0x8] adds r5, 0x8 ldr r0, [r1, 0x4] adds r0, 0x1 str r0, [r1, 0x4] cmp r0, 0x7 ble _080B3894 ldr r0, [sp, 0x1E0] b _080B388A .align 2, 0 _080B3868: .4byte gUnknown_826FDF4 _080B386C: mov r2, r8 str r2, [r5] str r1, [r5, 0x4] mov r4, r9 ldr r0, [r4, 0x8] adds r0, 0x1 _080B3878: str r0, [r4, 0x8] adds r5, 0x8 ldr r0, [r4, 0x4] adds r0, 0x1 str r0, [r4, 0x4] cmp r0, 0x7 ble _080B3894 ldr r0, [sp, 0x1E0] mov r1, r9 _080B388A: bl __sprint cmp r0, 0 bne _080B3978 add r5, sp, 0x28 _080B3894: add r0, sp, 0x14 str r0, [r5] ldr r1, [sp, 0x204] _080B389A: str r1, [r5, 0x4] mov r2, r9 ldr r0, [r2, 0x8] adds r0, r1 _080B38A2: str r0, [r2, 0x8] adds r5, 0x8 ldr r0, [r2, 0x4] adds r0, 0x1 str r0, [r2, 0x4] _080B38AC: cmp r0, 0x7 ble _080B38BE ldr r0, [sp, 0x1E0] mov r1, r9 _080B38B4: bl __sprint cmp r0, 0 bne _080B3978 add r5, sp, 0x28 _080B38BE: movs r0, 0x4 ldr r4, [sp, 0x1EC] ands r4, r0 cmp r4, 0 beq _080B392A ldr r0, [sp, 0x1F4] ldr r1, [sp, 0x20C] subs r4, r0, r1 cmp r4, 0 ble _080B392A ldr r1, _080B395C cmp r4, 0x10 ble _080B3908 mov r6, r9 _080B38DA: str r1, [r5] movs r0, 0x10 str r0, [r5, 0x4] ldr r0, [r6, 0x8] adds r0, 0x10 str r0, [r6, 0x8] adds r5, 0x8 ldr r0, [r6, 0x4] adds r0, 0x1 str r0, [r6, 0x4] cmp r0, 0x7 ble _080B3902 ldr r0, [sp, 0x1E0] mov r1, r9 bl __sprint cmp r0, 0 bne _080B3978 add r5, sp, 0x28 ldr r1, _080B395C _080B3902: subs r4, 0x10 cmp r4, 0x10 bgt _080B38DA _080B3908: str r1, [r5] str r4, [r5, 0x4] mov r2, r9 ldr r0, [r2, 0x8] adds r0, r4 str r0, [r2, 0x8] ldr r0, [r2, 0x4] adds r0, 0x1 str r0, [r2, 0x4] cmp r0, 0x7 ble _080B392A ldr r0, [sp, 0x1E0] mov r1, r9 bl __sprint cmp r0, 0 bne _080B3978 _080B392A: ldr r0, [sp, 0x20C] ldr r4, [sp, 0x1F4] cmp r0, r4 bge _080B3934 adds r0, r4, 0 _080B3934: ldr r1, [sp, 0x1F0] adds r1, r0 str r1, [sp, 0x1F0] mov r2, r9 ldr r0, [r2, 0x8] cmp r0, 0 beq _080B394E ldr r0, [sp, 0x1E0] mov r1, r9 bl __sprint cmp r0, 0 bne _080B3978 _080B394E: movs r0, 0 mov r4, r9 str r0, [r4, 0x4] add r5, sp, 0x28 bl _080B2AF4 .align 2, 0 _080B395C: .4byte gUnknown_826FDE4 _080B3960: mov r1, r9 ldr r0, [r1, 0x8] cmp r0, 0 beq _080B3972 ldr r0, [sp, 0x1E0] bl __sprint cmp r0, 0 bne _080B3978 _080B3972: movs r0, 0 mov r1, r9 str r0, [r1, 0x4] _080B3978: movs r0, 0x40 ldr r2, [sp, 0x1E0] ldrh r2, [r2, 0xC] ands r0, r2 movs r1, 0x1 negs r1, r1 cmp r0, 0 bne _080B398A ldr r1, [sp, 0x1F0] _080B398A: adds r0, r1, 0 _080B398C: movs r3, 0x88 lsls r3, 2 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7,pc} thumb_func_end _vfprintf_r thumb_func_start sub_80B399C sub_80B399C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C str r0, [sp, 0x18] adds r5, r2, 0 adds r4, r1, 0 mov r8, r3 ldr r6, [sp, 0x3C] ldr r0, [sp, 0x44] mov r10, r0 ldr r1, [sp, 0x48] mov r9, r1 cmp r1, 0x66 bne _080B39C2 movs r7, 0x3 b _080B39D2 _080B39C2: mov r0, r9 cmp r0, 0x65 beq _080B39CC cmp r0, 0x45 bne _080B39D0 _080B39CC: movs r1, 0x1 add r8, r1 _080B39D0: movs r7, 0x2 _080B39D2: lsls r0, r4, 31 lsrs r0, 31 cmp r0, 0 beq _080B39E8 adds r1, r5, 0 adds r0, r4, 0 bl __negdf2 adds r5, r1, 0 adds r4, r0, 0 movs r0, 0x2D _080B39E8: ldr r1, [sp, 0x40] strb r0, [r1] mov r0, r8 str r0, [sp] mov r1, r10 str r1, [sp, 0x4] add r0, sp, 0x10 str r0, [sp, 0x8] add r0, sp, 0x14 str r0, [sp, 0xC] ldr r0, [sp, 0x18] adds r2, r5, 0 adds r1, r4, 0 adds r3, r7, 0 bl _dtoa_r adds r7, r0, 0 mov r1, r9 cmp r1, 0x67 beq _080B3A14 cmp r1, 0x47 bne _080B3A1C _080B3A14: movs r0, 0x1 ands r6, r0 cmp r6, 0 beq _080B3A70 _080B3A1C: mov r0, r8 adds r6, r7, r0 mov r1, r9 cmp r1, 0x66 bne _080B3A4C ldrb r0, [r7] cmp r0, 0x30 bne _080B3A46 ldr r3, _080B3A8C ldr r2, _080B3A88 adds r1, r5, 0 adds r0, r4, 0 bl __nedf2 cmp r0, 0 beq _080B3A46 mov r1, r8 negs r0, r1 adds r0, 0x1 mov r1, r10 str r0, [r1] _080B3A46: mov r1, r10 ldr r0, [r1] adds r6, r0 _080B3A4C: ldr r3, _080B3A8C ldr r2, _080B3A88 adds r1, r5, 0 adds r0, r4, 0 bl __eqdf2 cmp r0, 0 bne _080B3A5E str r6, [sp, 0x14] _080B3A5E: ldr r0, [sp, 0x14] cmp r0, r6 bcs _080B3A70 movs r1, 0x30 _080B3A66: strb r1, [r0] adds r0, 0x1 str r0, [sp, 0x14] cmp r0, r6 bcc _080B3A66 _080B3A70: ldr r0, [sp, 0x14] subs r0, r7 ldr r1, [sp, 0x4C] str r0, [r1] adds r0, r7, 0 add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7,pc} .align 2, 0 _080B3A88: .4byte 0x00000000 _080B3A8C: .4byte 0x00000000 thumb_func_end sub_80B399C thumb_func_start sub_80B3A90 sub_80B3A90: push {r4-r7,lr} sub sp, 0x134 adds r7, r0, 0 adds r6, r1, 0 strb r2, [r7] adds r5, r7, 0x1 cmp r6, 0 bge _080B3AA6 negs r6, r6 movs r0, 0x2D b _080B3AA8 _080B3AA6: movs r0, 0x2B _080B3AA8: strb r0, [r7, 0x1] adds r5, 0x1 add r4, sp, 0x134 cmp r6, 0x9 ble _080B3AEA _080B3AB2: subs r4, 0x1 adds r0, r6, 0 movs r1, 0xA bl __modsi3 adds r0, 0x30 strb r0, [r4] adds r0, r6, 0 movs r1, 0xA bl __divsi3 adds r6, r0, 0 cmp r6, 0x9 bgt _080B3AB2 subs r4, 0x1 adds r0, 0x30 strb r0, [r4] add r0, sp, 0x134 cmp r4, r0 bcs _080B3AF8 adds r1, r0, 0 _080B3ADC: ldrb r0, [r4] strb r0, [r5] adds r4, 0x1 adds r5, 0x1 cmp r4, r1 bcc _080B3ADC b _080B3AF8 _080B3AEA: movs r0, 0x30 strb r0, [r5] adds r5, 0x1 adds r0, r6, 0 adds r0, 0x30 strb r0, [r5] adds r5, 0x1 _080B3AF8: subs r0, r5, r7 add sp, 0x134 pop {r4-r7,pc} thumb_func_end sub_80B3A90 thumb_func_start vsprintf vsprintf: push {r4,r5,lr} sub sp, 0x58 mov r4, sp movs r5, 0 movs r3, 0x82 lsls r3, 2 strh r3, [r4, 0xC] str r0, [sp] str r0, [sp, 0x10] ldr r0, _080B3B2C str r0, [sp, 0x8] str r0, [sp, 0x14] ldr r0, _080B3B30 ldr r0, [r0] str r0, [sp, 0x54] mov r0, sp bl vfprintf ldr r1, [sp] strb r5, [r1] add sp, 0x58 pop {r4,r5,pc} .align 2, 0 _080B3B2C: .4byte 0x7fffffff _080B3B30: .4byte gUnknown_203B7A8 thumb_func_end vsprintf thumb_func_start sub_80B3B34 sub_80B3B34: push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x54] cmp r0, 0 bne _080B3B44 ldr r0, _080B3B70 ldr r0, [r0] str r0, [r4, 0x54] _080B3B44: ldr r1, [r4, 0x54] ldr r0, [r1, 0x38] cmp r0, 0 bne _080B3B52 adds r0, r1, 0 bl sub_80B4BC4 _080B3B52: ldrh r1, [r4, 0xC] movs r0, 0x8 ands r0, r1 lsls r0, 16 asrs r5, r0, 16 cmp r5, 0 bne _080B3BAC movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080B3B74 movs r0, 0x1 negs r0, r0 b _080B3BDE .align 2, 0 _080B3B70: .4byte gUnknown_203B7A8 _080B3B74: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080B3BA4 ldr r1, [r4, 0x30] cmp r1, 0 beq _080B3B92 adds r0, r4, 0 adds r0, 0x40 cmp r1, r0 beq _080B3B90 ldr r0, [r4, 0x54] bl _free_r _080B3B90: str r5, [r4, 0x30] _080B3B92: movs r0, 0x25 negs r0, r0 ldrh r1, [r4, 0xC] ands r0, r1 movs r1, 0 strh r0, [r4, 0xC] str r1, [r4, 0x4] ldr r0, [r4, 0x10] str r0, [r4] _080B3BA4: movs r0, 0x8 ldrh r1, [r4, 0xC] orrs r0, r1 strh r0, [r4, 0xC] _080B3BAC: ldr r0, [r4, 0x10] cmp r0, 0 bne _080B3BB8 adds r0, r4, 0 bl sub_80B517C _080B3BB8: ldrh r1, [r4, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080B3BCE movs r0, 0 str r0, [r4, 0x8] ldr r0, [r4, 0x14] negs r0, r0 str r0, [r4, 0x18] b _080B3BDC _080B3BCE: movs r0, 0x2 ands r0, r1 movs r1, 0 cmp r0, 0 bne _080B3BDA ldr r1, [r4, 0x14] _080B3BDA: str r1, [r4, 0x8] _080B3BDC: movs r0, 0 _080B3BDE: pop {r4,r5,pc} thumb_func_end sub_80B3B34 thumb_func_start sub_80B3BE0 sub_80B3BE0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 str r0, [sp] str r1, [sp, 0x4] ldr r7, [r1, 0x10] ldr r0, [r0, 0x10] cmp r0, r7 bge _080B3BFC movs r0, 0 b _080B3D30 _080B3BFC: ldr r0, [sp, 0x4] adds r0, 0x14 mov r8, r0 subs r7, 0x1 lsls r0, r7, 2 mov r1, r8 adds r1, r0 str r1, [sp, 0xC] ldr r4, [sp] adds r4, 0x14 adds r5, r4, r0 ldr r1, [r1] adds r1, 0x1 ldr r2, [r5] mov r10, r2 mov r0, r10 bl sub_80B688C str r0, [sp, 0x8] mov r3, r8 str r3, [sp, 0x14] str r4, [sp, 0x10] cmp r0, 0 beq _080B3CA6 movs r6, 0 mov r9, r6 ldr r0, _080B3C90 mov r12, r0 _080B3C34: mov r2, r8 adds r2, 0x4 mov r8, r2 subs r2, 0x4 ldm r2!, {r1} adds r0, r1, 0 mov r3, r12 ands r0, r3 ldr r2, [sp, 0x8] muls r0, r2 mov r3, r9 adds r2, r0, r3 lsrs r0, r1, 16 ldr r3, [sp, 0x8] adds r1, r0, 0 muls r1, r3 lsrs r0, r2, 16 adds r3, r1, r0 lsrs r0, r3, 16 mov r9, r0 ldr r0, [r4] mov r1, r12 ands r0, r1 ands r2, r1 subs r0, r2 adds r2, r0, r6 asrs r6, r2, 16 ldr r0, [r4] lsrs r1, r0, 16 mov r0, r12 ands r3, r0 subs r1, r3 adds r0, r1, r6 asrs r6, r0, 16 strh r0, [r4] strh r2, [r4, 0x2] adds r4, 0x4 ldr r1, [sp, 0xC] cmp r8, r1 bls _080B3C34 mov r2, r10 cmp r2, 0 bne _080B3CA6 ldr r4, [sp, 0x10] b _080B3C96 .align 2, 0 _080B3C90: .4byte 0x0000ffff _080B3C94: subs r7, 0x1 _080B3C96: subs r5, 0x4 cmp r5, r4 bls _080B3CA2 ldr r0, [r5] cmp r0, 0 beq _080B3C94 _080B3CA2: ldr r3, [sp] str r7, [r3, 0x10] _080B3CA6: ldr r0, [sp] ldr r1, [sp, 0x4] bl sub_80B5DD0 cmp r0, 0 blt _080B3D2E ldr r0, [sp, 0x8] adds r0, 0x1 str r0, [sp, 0x8] movs r6, 0 mov r9, r6 ldr r4, [sp, 0x10] ldr r1, [sp, 0x14] mov r8, r1 lsls r2, r7, 2 mov r10, r2 ldr r5, _080B3D18 _080B3CC8: mov r3, r8 adds r3, 0x4 mov r8, r3 subs r3, 0x4 ldm r3!, {r1} adds r0, r1, 0 ands r0, r5 mov r3, r9 adds r2, r0, r3 lsrs r1, 16 lsrs r0, r2, 16 adds r3, r1, r0 lsrs r0, r3, 16 mov r9, r0 ldr r1, [r4] adds r0, r1, 0 ands r0, r5 ands r2, r5 subs r0, r2 adds r2, r0, r6 asrs r6, r2, 16 lsrs r1, 16 ands r3, r5 subs r1, r3 adds r0, r1, r6 asrs r6, r0, 16 strh r0, [r4] strh r2, [r4, 0x2] adds r4, 0x4 ldr r1, [sp, 0xC] cmp r8, r1 bls _080B3CC8 ldr r4, [sp, 0x10] mov r2, r10 adds r5, r4, r2 ldr r0, [r5] cmp r0, 0 bne _080B3D2E b _080B3D1E .align 2, 0 _080B3D18: .4byte 0x0000ffff _080B3D1C: subs r7, 0x1 _080B3D1E: subs r5, 0x4 cmp r5, r4 bls _080B3D2A ldr r0, [r5] cmp r0, 0 beq _080B3D1C _080B3D2A: ldr r3, [sp] str r7, [r3, 0x10] _080B3D2E: ldr r0, [sp, 0x8] _080B3D30: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7,pc} thumb_func_end sub_80B3BE0 thumb_func_start _dtoa_r _dtoa_r: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x84 mov r10, r0 str r3, [sp, 0xC] ldr r4, [sp, 0xAC] str r1, [sp, 0x40] str r2, [sp, 0x44] ldr r2, [r0, 0x40] cmp r2, 0 beq _080B3D74 ldr r0, [r0, 0x44] str r0, [r2, 0x4] mov r0, r10 ldr r1, [r0, 0x44] movs r0, 0x1 lsls r0, r1 str r0, [r2, 0x8] mov r0, r10 adds r1, r2, 0 bl sub_80B5908 movs r0, 0 mov r1, r10 str r0, [r1, 0x40] _080B3D74: movs r0, 0x80 lsls r0, 24 ldr r1, [sp, 0x40] ands r0, r1 cmp r0, 0 beq _080B3D90 movs r0, 0x1 str r0, [r4] ldr r0, _080B3D8C ands r1, r0 str r1, [sp, 0x40] b _080B3D92 .align 2, 0 _080B3D8C: .4byte 0x7fffffff _080B3D90: str r0, [r4] _080B3D92: ldr r1, _080B3DD4 ldr r2, [sp, 0x40] adds r0, r2, 0 ands r0, r1 cmp r0, r1 bne _080B3DE8 ldr r0, _080B3DD8 ldr r3, [sp, 0xA8] str r0, [r3] ldr r0, _080B3DDC mov r9, r0 ldr r1, [sp, 0x44] cmp r1, 0 bne _080B3DBA ldr r0, _080B3DE0 ands r2, r0 cmp r2, 0 bne _080B3DBA ldr r2, _080B3DE4 mov r9, r2 _080B3DBA: ldr r3, [sp, 0xB0] cmp r3, 0 beq _080B3E0C mov r1, r9 ldrb r0, [r1, 0x3] adds r1, 0x3 cmp r0, 0 beq _080B3DCC adds r1, 0x5 _080B3DCC: ldr r2, [sp, 0xB0] str r1, [r2] b _080B3E0C .align 2, 0 _080B3DD4: .4byte 0x7ff00000 _080B3DD8: .4byte 0x0000270f _080B3DDC: .4byte gUnknown_826FE6C _080B3DE0: .4byte 0x000fffff _080B3DE4: .4byte gUnknown_826FE60 _080B3DE8: ldr r3, _080B3E18 ldr r2, _080B3E14 ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] bl __eqdf2 cmp r0, 0 bne _080B3E20 movs r0, 0x1 ldr r3, [sp, 0xA8] str r0, [r3] ldr r0, _080B3E1C mov r9, r0 ldr r1, [sp, 0xB0] cmp r1, 0 beq _080B3E0C adds r0, 0x1 str r0, [r1] _080B3E0C: mov r0, r9 bl _080B4A26 .align 2, 0 _080B3E14: .4byte 0x00000000 _080B3E18: .4byte 0x00000000 _080B3E1C: .4byte gUnknown_826FE70 _080B3E20: add r0, sp, 0x8 str r0, [sp] mov r0, r10 ldr r1, [sp, 0x40] ldr r2, [sp, 0x44] add r3, sp, 0x4 bl sub_80B6008 str r0, [sp, 0x5C] ldr r2, [sp, 0x40] lsls r0, r2, 1 lsrs r0, 21 mov r8, r0 cmp r0, 0 beq _080B3E70 ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] str r0, [sp, 0x48] str r1, [sp, 0x4C] ldr r0, _080B3E64 ldr r1, [sp, 0x48] ands r1, r0 str r1, [sp, 0x48] ldr r0, _080B3E68 adds r2, r1, 0 orrs r2, r0 str r2, [sp, 0x48] ldr r3, _080B3E6C add r8, r3 movs r0, 0 str r0, [sp, 0x58] ldr r6, [sp, 0x8] b _080B3ED0 .align 2, 0 _080B3E64: .4byte 0x000fffff _080B3E68: .4byte 0x3ff00000 _080B3E6C: .4byte 0xfffffc01 _080B3E70: ldr r1, [sp, 0x8] ldr r0, [sp, 0x4] adds r2, r1, r0 ldr r3, _080B3E98 adds r3, r2 mov r8, r3 adds r6, r1, 0 cmp r3, 0x20 ble _080B3EA0 movs r0, 0x40 subs r0, r3 ldr r4, [sp, 0x40] lsls r4, r0 ldr r1, _080B3E9C adds r0, r2, r1 ldr r2, [sp, 0x44] lsrs r2, r0 adds r0, r2, 0 orrs r4, r0 b _080B3EAA .align 2, 0 _080B3E98: .4byte 0x00000432 _080B3E9C: .4byte 0x00000412 _080B3EA0: movs r0, 0x20 mov r3, r8 subs r0, r3 ldr r4, [sp, 0x44] lsls r4, r0 _080B3EAA: adds r0, r4, 0 bl __floatsidf cmp r4, 0 bge _080B3EBC ldr r3, _080B3F80 ldr r2, _080B3F7C bl __adddf3 _080B3EBC: str r0, [sp, 0x48] str r1, [sp, 0x4C] ldr r1, _080B3F84 ldr r0, [sp, 0x48] adds r1, r0, r1 str r1, [sp, 0x48] ldr r2, _080B3F88 add r8, r2 movs r3, 0x1 str r3, [sp, 0x58] _080B3ED0: ldr r2, _080B3F8C ldr r3, _080B3F90 ldr r0, [sp, 0x48] ldr r1, [sp, 0x4C] bl __subdf3 ldr r2, _080B3F94 ldr r3, _080B3F98 bl __muldf3 ldr r2, _080B3F9C ldr r3, _080B3FA0 bl __adddf3 adds r5, r1, 0 adds r4, r0, 0 mov r0, r8 bl __floatsidf ldr r2, _080B3FA4 ldr r3, _080B3FA8 bl __muldf3 adds r3, r1, 0 adds r2, r0, 0 adds r1, r5, 0 adds r0, r4, 0 bl __adddf3 str r0, [sp, 0x6C] str r1, [sp, 0x70] bl __fixdfsi str r0, [sp, 0x24] ldr r2, _080B3FAC ldr r3, _080B3FB0 ldr r0, [sp, 0x6C] ldr r1, [sp, 0x70] bl __ltdf2 cmp r0, 0 bge _080B3F40 ldr r0, [sp, 0x24] bl __floatsidf adds r3, r1, 0 adds r2, r0, 0 ldr r0, [sp, 0x6C] ldr r1, [sp, 0x70] bl __nedf2 cmp r0, 0 beq _080B3F40 ldr r0, [sp, 0x24] subs r0, 0x1 str r0, [sp, 0x24] _080B3F40: movs r1, 0x1 str r1, [sp, 0x2C] ldr r2, [sp, 0x24] cmp r2, 0x16 bhi _080B3F6A ldr r1, _080B3FB4 lsls r0, r2, 3 adds r0, r1 ldr r2, [r0] ldr r3, [r0, 0x4] ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] bl __ltdf2 cmp r0, 0 bge _080B3F66 ldr r3, [sp, 0x24] subs r3, 0x1 str r3, [sp, 0x24] _080B3F66: movs r0, 0 str r0, [sp, 0x2C] _080B3F6A: mov r1, r8 subs r0, r6, r1 subs r4, r0, 0x1 cmp r4, 0 blt _080B3FB8 movs r2, 0 str r2, [sp, 0x10] str r4, [sp, 0x34] b _080B3FC0 .align 2, 0 _080B3F7C: .4byte 0x41f00000 _080B3F80: .4byte 0x00000000 _080B3F84: .4byte 0xfe100000 _080B3F88: .4byte 0xfffffbcd _080B3F8C: .4byte 0x3ff80000 _080B3F90: .4byte 0x00000000 _080B3F94: .4byte 0x3fd287a7 _080B3F98: .4byte 0x636f4361 _080B3F9C: .4byte 0x3fc68a28 _080B3FA0: .4byte 0x8b60c8b3 _080B3FA4: .4byte 0x3fd34413 _080B3FA8: .4byte 0x509f79fb _080B3FAC: .4byte 0x00000000 _080B3FB0: .4byte 0x00000000 _080B3FB4: .4byte gUnknown_826FEC0 _080B3FB8: negs r4, r4 str r4, [sp, 0x10] movs r3, 0 str r3, [sp, 0x34] _080B3FC0: ldr r0, [sp, 0x24] cmp r0, 0 blt _080B3FD4 movs r1, 0 str r1, [sp, 0x14] str r0, [sp, 0x38] ldr r2, [sp, 0x34] adds r2, r0 str r2, [sp, 0x34] b _080B3FE4 _080B3FD4: ldr r3, [sp, 0x10] ldr r0, [sp, 0x24] subs r3, r0 str r3, [sp, 0x10] negs r1, r0 str r1, [sp, 0x14] movs r2, 0 str r2, [sp, 0x38] _080B3FE4: ldr r3, [sp, 0xC] cmp r3, 0x9 bls _080B3FEE movs r0, 0 str r0, [sp, 0xC] _080B3FEE: movs r5, 0x1 ldr r1, [sp, 0xC] cmp r1, 0x5 ble _080B3FFC subs r1, 0x4 str r1, [sp, 0xC] movs r5, 0 _080B3FFC: movs r2, 0x1 str r2, [sp, 0x30] ldr r3, [sp, 0xC] cmp r3, 0x5 bhi _080B4076 lsls r0, r3, 2 ldr r1, _080B4010 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B4010: .4byte _080B4014 .align 2, 0 _080B4014: .4byte _080B402C .4byte _080B402C .4byte _080B403E .4byte _080B405A .4byte _080B4042 .4byte _080B405E _080B402C: movs r0, 0x1 negs r0, r0 str r0, [sp, 0x18] str r0, [sp, 0x20] movs r1, 0x12 mov r8, r1 movs r2, 0 str r2, [sp, 0xA4] b _080B4076 _080B403E: movs r3, 0 str r3, [sp, 0x30] _080B4042: ldr r0, [sp, 0xA4] cmp r0, 0 bgt _080B404C movs r1, 0x1 str r1, [sp, 0xA4] _080B404C: ldr r2, [sp, 0xA4] mov r8, r2 mov r3, r8 str r3, [sp, 0x20] mov r0, r8 str r0, [sp, 0x18] b _080B4076 _080B405A: movs r1, 0 str r1, [sp, 0x30] _080B405E: ldr r2, [sp, 0xA4] ldr r3, [sp, 0x24] adds r0, r2, r3 adds r1, r0, 0x1 mov r8, r1 mov r2, r8 str r2, [sp, 0x18] str r0, [sp, 0x20] cmp r1, 0 bgt _080B4076 movs r3, 0x1 mov r8, r3 _080B4076: movs r4, 0x4 movs r0, 0 mov r1, r10 str r0, [r1, 0x44] mov r2, r8 cmp r2, 0x17 bls _080B4096 movs r1, 0 _080B4086: adds r1, 0x1 lsls r4, 1 adds r0, r4, 0 adds r0, 0x14 cmp r0, r8 bls _080B4086 mov r3, r10 str r1, [r3, 0x44] _080B4096: mov r0, r10 ldr r1, [r0, 0x44] bl sub_80B58B0 mov r1, r10 str r0, [r1, 0x40] str r0, [sp, 0x74] mov r9, r0 ldr r2, [sp, 0x18] cmp r2, 0xE bls _080B40AE b _080B4420 _080B40AE: cmp r5, 0 bne _080B40B4 b _080B4420 _080B40B4: ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] str r0, [sp, 0x78] str r1, [sp, 0x7C] str r0, [sp, 0x48] str r1, [sp, 0x4C] ldr r1, [sp, 0x24] str r1, [sp, 0x28] str r2, [sp, 0x1C] movs r7, 0x2 cmp r1, 0 ble _080B4144 ldr r0, _080B413C movs r2, 0xF ands r1, r2 lsls r1, 3 adds r3, r1, r0 ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [sp, 0x6C] str r1, [sp, 0x70] ldr r1, [sp, 0x24] asrs r4, r1, 4 movs r0, 0x10 ands r0, r4 cmp r0, 0 beq _080B4100 ands r4, r2 ldr r0, _080B4140 ldr r2, [r0, 0x20] ldr r3, [r0, 0x24] ldr r0, [sp, 0x78] ldr r1, [sp, 0x7C] bl __divdf3 str r0, [sp, 0x40] str r1, [sp, 0x44] movs r7, 0x3 _080B4100: cmp r4, 0 beq _080B4128 ldr r5, _080B4140 _080B4106: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _080B4120 adds r7, 0x1 ldr r2, [r5] ldr r3, [r5, 0x4] ldr r0, [sp, 0x6C] ldr r1, [sp, 0x70] bl __muldf3 str r0, [sp, 0x6C] str r1, [sp, 0x70] _080B4120: asrs r4, 1 adds r5, 0x8 cmp r4, 0 bne _080B4106 _080B4128: ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] ldr r2, [sp, 0x6C] ldr r3, [sp, 0x70] bl __divdf3 str r0, [sp, 0x40] str r1, [sp, 0x44] b _080B4190 .align 2, 0 _080B413C: .4byte gUnknown_826FEC0 _080B4140: .4byte gUnknown_826FF88 _080B4144: ldr r2, [sp, 0x24] negs r6, r2 cmp r6, 0 beq _080B4190 ldr r1, _080B4238 movs r0, 0xF ands r0, r6 lsls r0, 3 adds r0, r1 ldr r1, [r0, 0x4] ldr r0, [r0] ldr r2, [sp, 0x78] ldr r3, [sp, 0x7C] bl __muldf3 str r0, [sp, 0x40] str r1, [sp, 0x44] asrs r4, r6, 4 cmp r4, 0 beq _080B4190 ldr r5, _080B423C _080B416E: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _080B4188 adds r7, 0x1 ldr r0, [r5] ldr r1, [r5, 0x4] ldr r2, [sp, 0x40] ldr r3, [sp, 0x44] bl __muldf3 str r0, [sp, 0x40] str r1, [sp, 0x44] _080B4188: asrs r4, 1 adds r5, 0x8 cmp r4, 0 bne _080B416E _080B4190: ldr r3, [sp, 0x2C] cmp r3, 0 beq _080B41CE ldr r2, _080B4240 ldr r3, _080B4244 ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] bl __ltdf2 cmp r0, 0 bge _080B41CE ldr r0, [sp, 0x18] cmp r0, 0 ble _080B41CE ldr r1, [sp, 0x20] cmp r1, 0 bgt _080B41B4 b _080B440C _080B41B4: str r1, [sp, 0x18] ldr r2, [sp, 0x24] subs r2, 0x1 str r2, [sp, 0x24] ldr r0, _080B4248 ldr r1, _080B424C ldr r2, [sp, 0x40] ldr r3, [sp, 0x44] bl __muldf3 str r0, [sp, 0x40] str r1, [sp, 0x44] adds r7, 0x1 _080B41CE: adds r0, r7, 0 bl __floatsidf ldr r2, [sp, 0x40] ldr r3, [sp, 0x44] bl __muldf3 ldr r2, _080B4250 ldr r3, _080B4254 bl __adddf3 str r0, [sp, 0x50] str r1, [sp, 0x54] ldr r0, _080B4258 ldr r3, [sp, 0x50] adds r0, r3, r0 str r0, [sp, 0x50] ldr r1, [sp, 0x18] cmp r1, 0 bne _080B4264 movs r2, 0 str r2, [sp, 0x64] movs r3, 0 str r3, [sp, 0x68] ldr r2, _080B425C ldr r3, _080B4260 ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] bl __subdf3 adds r5, r1, 0 adds r4, r0, 0 ldr r2, [sp, 0x50] ldr r3, [sp, 0x54] bl __gtdf2 cmp r0, 0 ble _080B421C b _080B4796 _080B421C: ldr r0, [sp, 0x50] ldr r1, [sp, 0x54] bl __negdf2 adds r3, r1, 0 adds r2, r0, 0 adds r1, r5, 0 adds r0, r4, 0 bl __ltdf2 cmp r0, 0 bge _080B4236 b _080B478E _080B4236: b _080B440C .align 2, 0 _080B4238: .4byte gUnknown_826FEC0 _080B423C: .4byte gUnknown_826FF88 _080B4240: .4byte 0x3ff00000 _080B4244: .4byte 0x00000000 _080B4248: .4byte 0x40240000 _080B424C: .4byte 0x00000000 _080B4250: .4byte 0x401c0000 _080B4254: .4byte 0x00000000 _080B4258: .4byte 0xfcc00000 _080B425C: .4byte 0x40140000 _080B4260: .4byte 0x00000000 _080B4264: ldr r0, [sp, 0x30] cmp r0, 0 beq _080B4334 ldr r1, _080B4294 ldr r0, [sp, 0x18] subs r0, 0x1 lsls r0, 3 adds r0, r1 ldr r2, [r0] ldr r3, [r0, 0x4] ldr r0, _080B4298 ldr r1, _080B429C bl __divdf3 ldr r2, [sp, 0x50] ldr r3, [sp, 0x54] bl __subdf3 str r0, [sp, 0x50] str r1, [sp, 0x54] movs r1, 0 mov r8, r1 b _080B42C0 .align 2, 0 _080B4294: .4byte gUnknown_826FEC0 _080B4298: .4byte 0x3fe00000 _080B429C: .4byte 0x00000000 _080B42A0: ldr r1, _080B4328 ldr r0, _080B4324 ldr r2, [sp, 0x50] ldr r3, [sp, 0x54] bl __muldf3 str r0, [sp, 0x50] str r1, [sp, 0x54] ldr r1, _080B4328 ldr r0, _080B4324 adds r3, r5, 0 adds r2, r4, 0 bl __muldf3 str r0, [sp, 0x40] str r1, [sp, 0x44] _080B42C0: ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] bl __fixdfsi adds r6, r0, 0 bl __floatsidf adds r3, r1, 0 adds r2, r0, 0 ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] bl __subdf3 adds r5, r1, 0 adds r4, r0, 0 adds r0, r6, 0 adds r0, 0x30 mov r2, r9 strb r0, [r2] movs r3, 0x1 add r9, r3 adds r1, r5, 0 adds r0, r4, 0 ldr r2, [sp, 0x50] ldr r3, [sp, 0x54] bl __ltdf2 cmp r0, 0 bge _080B42FC b _080B4A06 _080B42FC: ldr r0, _080B432C ldr r1, _080B4330 adds r3, r5, 0 adds r2, r4, 0 bl __subdf3 ldr r2, [sp, 0x50] ldr r3, [sp, 0x54] bl __ltdf2 cmp r0, 0 bge _080B4316 b _080B4520 _080B4316: movs r0, 0x1 add r8, r0 ldr r1, [sp, 0x18] cmp r8, r1 blt _080B42A0 b _080B440C .align 2, 0 _080B4324: .4byte 0x40240000 _080B4328: .4byte 0x00000000 _080B432C: .4byte 0x3ff00000 _080B4330: .4byte 0x00000000 _080B4334: ldr r1, _080B4354 ldr r0, [sp, 0x18] subs r0, 0x1 lsls r0, 3 adds r0, r1 ldr r1, [r0, 0x4] ldr r0, [r0] ldr r2, [sp, 0x50] ldr r3, [sp, 0x54] bl __muldf3 str r0, [sp, 0x50] str r1, [sp, 0x54] movs r2, 0x1 mov r8, r2 b _080B436C .align 2, 0 _080B4354: .4byte gUnknown_826FEC0 _080B4358: movs r3, 0x1 add r8, r3 ldr r1, _080B4400 ldr r0, _080B43FC adds r3, r5, 0 adds r2, r4, 0 bl __muldf3 str r0, [sp, 0x40] str r1, [sp, 0x44] _080B436C: ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] bl __fixdfsi adds r6, r0, 0 bl __floatsidf adds r3, r1, 0 adds r2, r0, 0 ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] bl __subdf3 adds r5, r1, 0 adds r4, r0, 0 adds r0, r6, 0 adds r0, 0x30 mov r1, r9 strb r0, [r1] movs r2, 0x1 add r9, r2 ldr r3, [sp, 0x18] cmp r8, r3 bne _080B4358 ldr r6, _080B4404 ldr r7, _080B4408 adds r1, r7, 0 adds r0, r6, 0 ldr r2, [sp, 0x50] ldr r3, [sp, 0x54] bl __adddf3 adds r3, r1, 0 adds r2, r0, 0 adds r1, r5, 0 adds r0, r4, 0 bl __gtdf2 cmp r0, 0 ble _080B43BE b _080B4520 _080B43BE: adds r1, r7, 0 adds r0, r6, 0 ldr r2, [sp, 0x50] ldr r3, [sp, 0x54] bl __subdf3 adds r3, r1, 0 adds r2, r0, 0 adds r1, r5, 0 adds r0, r4, 0 bl __ltdf2 cmp r0, 0 bge _080B440C movs r0, 0x1 negs r0, r0 add r9, r0 mov r1, r9 ldrb r1, [r1] cmp r1, 0x30 beq _080B43EA b _080B4546 _080B43EA: movs r2, 0x1 negs r2, r2 add r9, r2 mov r3, r9 ldrb r3, [r3] cmp r3, 0x30 beq _080B43EA b _080B4546 .align 2, 0 _080B43FC: .4byte 0x40240000 _080B4400: .4byte 0x00000000 _080B4404: .4byte 0x3fe00000 _080B4408: .4byte 0x00000000 _080B440C: ldr r1, [sp, 0x74] mov r9, r1 ldr r2, [sp, 0x48] ldr r3, [sp, 0x4C] str r2, [sp, 0x40] str r3, [sp, 0x44] ldr r3, [sp, 0x28] str r3, [sp, 0x24] ldr r0, [sp, 0x1C] str r0, [sp, 0x18] _080B4420: ldr r0, [sp, 0x4] cmp r0, 0 bge _080B4428 b _080B455C _080B4428: ldr r1, [sp, 0x24] cmp r1, 0xE ble _080B4430 b _080B455C _080B4430: ldr r1, _080B447C ldr r2, [sp, 0x24] lsls r0, r2, 3 adds r0, r1 ldr r1, [r0] ldr r2, [r0, 0x4] str r1, [sp, 0x6C] str r2, [sp, 0x70] ldr r2, [sp, 0xA4] cmp r2, 0 bge _080B4488 ldr r3, [sp, 0x18] cmp r3, 0 bgt _080B4488 movs r0, 0 str r0, [sp, 0x64] movs r1, 0 str r1, [sp, 0x68] cmp r3, 0 bge _080B445A b _080B478E _080B445A: ldr r2, _080B4480 ldr r3, _080B4484 ldr r0, [sp, 0x6C] ldr r1, [sp, 0x70] bl __muldf3 adds r3, r1, 0 adds r2, r0, 0 ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] bl __ledf2 cmp r0, 0 bgt _080B4478 b _080B478E _080B4478: b _080B4796 .align 2, 0 _080B447C: .4byte gUnknown_826FEC0 _080B4480: .4byte 0x40140000 _080B4484: .4byte 0x00000000 _080B4488: movs r2, 0x1 mov r8, r2 b _080B44AC _080B448E: ldr r1, _080B4550 ldr r0, _080B454C bl __muldf3 str r0, [sp, 0x40] str r1, [sp, 0x44] ldr r2, _080B4554 ldr r3, _080B4558 bl __eqdf2 cmp r0, 0 bne _080B44A8 b _080B4A06 _080B44A8: movs r3, 0x1 add r8, r3 _080B44AC: ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] ldr r2, [sp, 0x6C] ldr r3, [sp, 0x70] bl __divdf3 bl __fixdfsi adds r6, r0, 0 bl __floatsidf ldr r2, [sp, 0x6C] ldr r3, [sp, 0x70] bl __muldf3 adds r3, r1, 0 adds r2, r0, 0 ldr r0, [sp, 0x40] ldr r1, [sp, 0x44] bl __subdf3 adds r3, r1, 0 adds r2, r0, 0 adds r0, r6, 0 adds r0, 0x30 mov r1, r9 strb r0, [r1] movs r0, 0x1 add r9, r0 ldr r1, [sp, 0x18] cmp r8, r1 bne _080B448E adds r1, r3, 0 adds r0, r2, 0 bl __adddf3 adds r5, r1, 0 adds r4, r0, 0 ldr r2, [sp, 0x6C] ldr r3, [sp, 0x70] bl __gtdf2 cmp r0, 0 bgt _080B4520 adds r1, r5, 0 adds r0, r4, 0 ldr r2, [sp, 0x6C] ldr r3, [sp, 0x70] bl __eqdf2 cmp r0, 0 beq _080B4516 b _080B4A06 _080B4516: movs r0, 0x1 ands r0, r6 cmp r0, 0 bne _080B4520 b _080B4A06 _080B4520: movs r0, 0x30 _080B4522: movs r2, 0x1 negs r2, r2 add r9, r2 mov r3, r9 ldrb r3, [r3] cmp r3, 0x39 bne _080B453E ldr r1, [sp, 0x74] cmp r9, r1 bne _080B4522 ldr r2, [sp, 0x24] adds r2, 0x1 str r2, [sp, 0x24] strb r0, [r1] _080B453E: mov r3, r9 ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] _080B4546: movs r0, 0x1 add r9, r0 b _080B4A06 .align 2, 0 _080B454C: .4byte 0x40240000 _080B4550: .4byte 0x00000000 _080B4554: .4byte 0x00000000 _080B4558: .4byte 0x00000000 _080B455C: ldr r5, [sp, 0x10] ldr r6, [sp, 0x14] movs r1, 0 str r1, [sp, 0x60] movs r2, 0 str r2, [sp, 0x64] ldr r3, [sp, 0x30] cmp r3, 0 beq _080B45D2 ldr r1, [sp, 0xC] cmp r1, 0x1 bgt _080B4590 ldr r2, [sp, 0x58] cmp r2, 0 beq _080B4588 ldr r3, _080B4584 adds r3, r0 mov r8, r3 b _080B45BC .align 2, 0 _080B4584: .4byte 0x00000433 _080B4588: ldr r1, [sp, 0x8] movs r0, 0x36 subs r0, r1 b _080B45BA _080B4590: ldr r4, [sp, 0x18] subs r4, 0x1 ldr r0, [sp, 0x14] cmp r0, r4 blt _080B459E subs r6, r0, r4 b _080B45AE _080B459E: ldr r1, [sp, 0x14] subs r4, r1 ldr r2, [sp, 0x38] adds r2, r4 str r2, [sp, 0x38] adds r1, r4 str r1, [sp, 0x14] movs r6, 0 _080B45AE: ldr r3, [sp, 0x18] mov r8, r3 cmp r3, 0 bge _080B45BC subs r5, r3 movs r0, 0 _080B45BA: mov r8, r0 _080B45BC: ldr r1, [sp, 0x10] add r1, r8 str r1, [sp, 0x10] ldr r2, [sp, 0x34] add r2, r8 str r2, [sp, 0x34] mov r0, r10 movs r1, 0x1 bl sub_80B5B18 str r0, [sp, 0x64] _080B45D2: cmp r5, 0 ble _080B45F4 ldr r3, [sp, 0x34] cmp r3, 0 ble _080B45F4 mov r8, r3 cmp r8, r5 ble _080B45E4 mov r8, r5 _080B45E4: ldr r0, [sp, 0x10] mov r1, r8 subs r0, r1 str r0, [sp, 0x10] subs r5, r1 ldr r2, [sp, 0x34] subs r2, r1 str r2, [sp, 0x34] _080B45F4: ldr r3, [sp, 0x14] cmp r3, 0 ble _080B4642 ldr r0, [sp, 0x30] cmp r0, 0 beq _080B4636 cmp r6, 0 ble _080B4626 mov r0, r10 ldr r1, [sp, 0x64] adds r2, r6, 0 bl sub_80B5C98 str r0, [sp, 0x64] mov r0, r10 ldr r1, [sp, 0x64] ldr r2, [sp, 0x5C] bl sub_80B5B2C adds r4, r0, 0 mov r0, r10 ldr r1, [sp, 0x5C] bl sub_80B5908 str r4, [sp, 0x5C] _080B4626: ldr r1, [sp, 0x14] subs r4, r1, r6 cmp r4, 0 beq _080B4642 mov r0, r10 ldr r1, [sp, 0x5C] adds r2, r4, 0 b _080B463C _080B4636: mov r0, r10 ldr r1, [sp, 0x5C] ldr r2, [sp, 0x14] _080B463C: bl sub_80B5C98 str r0, [sp, 0x5C] _080B4642: mov r0, r10 movs r1, 0x1 bl sub_80B5B18 str r0, [sp, 0x68] ldr r2, [sp, 0x38] cmp r2, 0 ble _080B465C mov r0, r10 ldr r1, [sp, 0x68] bl sub_80B5C98 str r0, [sp, 0x68] _080B465C: ldr r3, [sp, 0xC] cmp r3, 0x1 bgt _080B4698 ldr r0, [sp, 0x44] cmp r0, 0 bne _080B4694 ldr r0, _080B468C ldr r1, [sp, 0x40] ands r0, r1 cmp r0, 0 bne _080B4694 ldr r0, _080B4690 ands r1, r0 cmp r1, 0 beq _080B4694 ldr r1, [sp, 0x10] adds r1, 0x1 str r1, [sp, 0x10] ldr r2, [sp, 0x34] adds r2, 0x1 str r2, [sp, 0x34] movs r3, 0x1 str r3, [sp, 0x3C] b _080B4698 .align 2, 0 _080B468C: .4byte 0x000fffff _080B4690: .4byte 0x7ff00000 _080B4694: movs r0, 0 str r0, [sp, 0x3C] _080B4698: ldr r1, [sp, 0x38] cmp r1, 0 beq _080B46C4 ldr r2, [sp, 0x68] ldr r1, [r2, 0x10] subs r1, 0x1 lsls r1, 2 adds r0, r2, 0 adds r0, 0x14 adds r0, r1 ldr r0, [r0] bl sub_80B5A3C ldr r1, [sp, 0x34] adds r1, 0x20 subs r1, r0 mov r8, r1 movs r0, 0x1F mov r3, r8 ands r3, r0 mov r8, r3 b _080B46D2 _080B46C4: ldr r0, [sp, 0x34] adds r0, 0x1 mov r8, r0 movs r0, 0x1F mov r1, r8 ands r1, r0 mov r8, r1 _080B46D2: mov r2, r8 cmp r2, 0 beq _080B46DE movs r0, 0x20 subs r2, r0, r2 mov r8, r2 _080B46DE: mov r3, r8 cmp r3, 0x4 ble _080B46EA movs r0, 0x4 negs r0, r0 b _080B46F2 _080B46EA: mov r3, r8 cmp r3, 0x3 bgt _080B4702 movs r0, 0x1C _080B46F2: add r8, r0 ldr r1, [sp, 0x10] add r1, r8 str r1, [sp, 0x10] add r5, r8 ldr r2, [sp, 0x34] add r2, r8 str r2, [sp, 0x34] _080B4702: ldr r3, [sp, 0x10] cmp r3, 0 ble _080B4714 mov r0, r10 ldr r1, [sp, 0x5C] adds r2, r3, 0 bl sub_80B5D30 str r0, [sp, 0x5C] _080B4714: ldr r0, [sp, 0x34] cmp r0, 0 ble _080B4726 mov r0, r10 ldr r1, [sp, 0x68] ldr r2, [sp, 0x34] bl sub_80B5D30 str r0, [sp, 0x68] _080B4726: ldr r1, [sp, 0x2C] cmp r1, 0 beq _080B4764 ldr r0, [sp, 0x5C] ldr r1, [sp, 0x68] bl sub_80B5DD0 cmp r0, 0 bge _080B4764 ldr r2, [sp, 0x24] subs r2, 0x1 str r2, [sp, 0x24] mov r0, r10 ldr r1, [sp, 0x5C] movs r2, 0xA movs r3, 0 bl sub_80B5920 str r0, [sp, 0x5C] ldr r3, [sp, 0x30] cmp r3, 0 beq _080B4760 mov r0, r10 ldr r1, [sp, 0x64] movs r2, 0xA movs r3, 0 bl sub_80B5920 str r0, [sp, 0x64] _080B4760: ldr r0, [sp, 0x20] str r0, [sp, 0x18] _080B4764: ldr r1, [sp, 0x18] cmp r1, 0 bgt _080B47A8 ldr r2, [sp, 0xC] cmp r2, 0x2 ble _080B47A8 cmp r1, 0 blt _080B478E mov r0, r10 ldr r1, [sp, 0x68] movs r2, 0x5 movs r3, 0 bl sub_80B5920 str r0, [sp, 0x68] ldr r0, [sp, 0x5C] ldr r1, [sp, 0x68] bl sub_80B5DD0 cmp r0, 0 bgt _080B4796 _080B478E: ldr r3, [sp, 0xA4] mvns r3, r3 str r3, [sp, 0x24] b _080B49DE _080B4796: movs r0, 0x31 mov r1, r9 strb r0, [r1] movs r2, 0x1 add r9, r2 ldr r3, [sp, 0x24] adds r3, 0x1 str r3, [sp, 0x24] b _080B49DE _080B47A8: ldr r0, [sp, 0x30] cmp r0, 0 bne _080B47B0 b _080B4926 _080B47B0: cmp r5, 0 ble _080B47C0 mov r0, r10 ldr r1, [sp, 0x64] adds r2, r5, 0 bl sub_80B5D30 str r0, [sp, 0x64] _080B47C0: ldr r1, [sp, 0x64] str r1, [sp, 0x60] ldr r2, [sp, 0x3C] cmp r2, 0 beq _080B47F2 ldr r1, [r1, 0x4] mov r0, r10 bl sub_80B58B0 str r0, [sp, 0x64] adds r0, 0xC ldr r1, [sp, 0x60] adds r1, 0xC ldr r3, [sp, 0x60] ldr r2, [r3, 0x10] lsls r2, 2 adds r2, 0x8 bl memcpy mov r0, r10 ldr r1, [sp, 0x64] movs r2, 0x1 bl sub_80B5D30 str r0, [sp, 0x64] _080B47F2: movs r0, 0x1 mov r8, r0 mov r1, r8 ldr r2, [sp, 0x44] ands r2, r1 str r2, [sp, 0x80] b _080B4848 _080B4800: mov r0, r10 ldr r1, [sp, 0x5C] movs r2, 0xA movs r3, 0 bl sub_80B5920 str r0, [sp, 0x5C] ldr r3, [sp, 0x60] ldr r0, [sp, 0x64] cmp r3, r0 bne _080B4828 mov r0, r10 ldr r1, [sp, 0x64] movs r2, 0xA movs r3, 0 bl sub_80B5920 str r0, [sp, 0x64] str r0, [sp, 0x60] b _080B4844 _080B4828: mov r0, r10 ldr r1, [sp, 0x60] movs r2, 0xA movs r3, 0 bl sub_80B5920 str r0, [sp, 0x60] mov r0, r10 ldr r1, [sp, 0x64] movs r2, 0xA movs r3, 0 bl sub_80B5920 str r0, [sp, 0x64] _080B4844: movs r1, 0x1 add r8, r1 _080B4848: ldr r0, [sp, 0x5C] ldr r1, [sp, 0x68] bl sub_80B3BE0 adds r7, r0, 0 adds r7, 0x30 ldr r0, [sp, 0x5C] ldr r1, [sp, 0x60] bl sub_80B5DD0 adds r4, r0, 0 mov r0, r10 ldr r1, [sp, 0x68] ldr r2, [sp, 0x64] bl sub_80B5E10 adds r5, r0, 0 ldr r0, [r5, 0xC] cmp r0, 0 bne _080B487C ldr r0, [sp, 0x5C] adds r1, r5, 0 bl sub_80B5DD0 adds r6, r0, 0 b _080B487E _080B487C: movs r6, 0x1 _080B487E: mov r0, r10 adds r1, r5, 0 bl sub_80B5908 cmp r6, 0 bne _080B48AA ldr r2, [sp, 0xC] cmp r2, 0 bne _080B48AA ldr r3, [sp, 0x80] cmp r3, 0 bne _080B48AA cmp r7, 0x39 beq _080B48FC cmp r4, 0 ble _080B48A0 adds r7, 0x1 _080B48A0: mov r0, r9 strb r7, [r0] movs r1, 0x1 add r9, r1 b _080B49DE _080B48AA: cmp r4, 0 blt _080B48BE cmp r4, 0 bne _080B48F4 ldr r2, [sp, 0xC] cmp r2, 0 bne _080B48F4 ldr r3, [sp, 0x80] cmp r3, 0 bne _080B48F4 _080B48BE: cmp r6, 0 ble _080B48EE mov r0, r10 ldr r1, [sp, 0x5C] movs r2, 0x1 bl sub_80B5D30 str r0, [sp, 0x5C] ldr r1, [sp, 0x68] bl sub_80B5DD0 adds r6, r0, 0 cmp r6, 0 bgt _080B48E8 cmp r6, 0 bne _080B48EE adds r0, r7, 0 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080B48EE _080B48E8: adds r7, 0x1 cmp r7, 0x3A beq _080B48FC _080B48EE: mov r2, r9 strb r7, [r2] b _080B49A6 _080B48F4: cmp r6, 0 ble _080B4914 cmp r7, 0x39 bne _080B4908 _080B48FC: movs r0, 0x39 mov r1, r9 strb r0, [r1] movs r2, 0x1 add r9, r2 b _080B497C _080B4908: adds r0, r7, 0x1 mov r3, r9 strb r0, [r3] movs r0, 0x1 add r9, r0 b _080B49DE _080B4914: mov r1, r9 strb r7, [r1] movs r2, 0x1 add r9, r2 ldr r3, [sp, 0x18] cmp r8, r3 beq _080B4924 b _080B4800 _080B4924: b _080B4958 _080B4926: movs r0, 0x1 mov r8, r0 b _080B493E _080B492C: mov r0, r10 ldr r1, [sp, 0x5C] movs r2, 0xA movs r3, 0 bl sub_80B5920 str r0, [sp, 0x5C] movs r1, 0x1 add r8, r1 _080B493E: ldr r0, [sp, 0x5C] ldr r1, [sp, 0x68] bl sub_80B3BE0 adds r7, r0, 0 adds r7, 0x30 mov r2, r9 strb r7, [r2] movs r3, 0x1 add r9, r3 ldr r0, [sp, 0x18] cmp r8, r0 blt _080B492C _080B4958: mov r0, r10 ldr r1, [sp, 0x5C] movs r2, 0x1 bl sub_80B5D30 str r0, [sp, 0x5C] ldr r1, [sp, 0x68] bl sub_80B5DD0 adds r4, r0, 0 cmp r4, 0 bgt _080B497C cmp r4, 0 bne _080B49BE movs r0, 0x1 ands r7, r0 cmp r7, 0 beq _080B49BE _080B497C: movs r1, 0x1 negs r1, r1 add r9, r1 mov r2, r9 ldrb r2, [r2] cmp r2, 0x39 bne _080B499E _080B498A: ldr r3, [sp, 0x74] cmp r9, r3 beq _080B49AC movs r0, 0x1 negs r0, r0 add r9, r0 mov r1, r9 ldrb r1, [r1] cmp r1, 0x39 beq _080B498A _080B499E: mov r2, r9 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] _080B49A6: movs r3, 0x1 add r9, r3 b _080B49DE _080B49AC: ldr r0, [sp, 0x24] adds r0, 0x1 str r0, [sp, 0x24] movs r0, 0x31 ldr r1, [sp, 0x74] strb r0, [r1] adds r1, 0x1 mov r9, r1 b _080B49DE _080B49BE: movs r2, 0x1 negs r2, r2 add r9, r2 mov r3, r9 ldrb r3, [r3] cmp r3, 0x30 bne _080B49DA _080B49CC: movs r0, 0x1 negs r0, r0 add r9, r0 mov r1, r9 ldrb r1, [r1] cmp r1, 0x30 beq _080B49CC _080B49DA: movs r2, 0x1 add r9, r2 _080B49DE: mov r0, r10 ldr r1, [sp, 0x68] bl sub_80B5908 ldr r3, [sp, 0x64] cmp r3, 0 beq _080B4A06 ldr r0, [sp, 0x60] cmp r0, 0 beq _080B49FE cmp r0, r3 beq _080B49FE mov r0, r10 ldr r1, [sp, 0x60] bl sub_80B5908 _080B49FE: mov r0, r10 ldr r1, [sp, 0x64] bl sub_80B5908 _080B4A06: mov r0, r10 ldr r1, [sp, 0x5C] bl sub_80B5908 movs r0, 0 mov r1, r9 strb r0, [r1] ldr r0, [sp, 0x24] adds r0, 0x1 ldr r2, [sp, 0xA8] str r0, [r2] ldr r3, [sp, 0xB0] cmp r3, 0 beq _080B4A24 str r1, [r3] _080B4A24: ldr r0, [sp, 0x74] _080B4A26: add sp, 0x84 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7,pc} thumb_func_end _dtoa_r thumb_func_start sub_80B4A34 sub_80B4A34: push {r4-r6,lr} adds r4, r0, 0 cmp r4, 0 bne _080B4A50 ldr r0, _080B4A48 ldr r0, [r0] ldr r1, _080B4A4C bl sub_80B50D0 b _080B4AC6 .align 2, 0 _080B4A48: .4byte gUnknown_203B7A8 _080B4A4C: .4byte sub_80B4A34 _080B4A50: ldr r0, [r4, 0x54] cmp r0, 0 bne _080B4A5C ldr r0, _080B4A90 ldr r0, [r0] str r0, [r4, 0x54] _080B4A5C: ldr r1, [r4, 0x54] ldr r0, [r1, 0x38] cmp r0, 0 bne _080B4A6A adds r0, r1, 0 bl sub_80B4BC4 _080B4A6A: movs r0, 0xC ldrsh r1, [r4, r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080B4AC4 ldr r6, [r4, 0x10] cmp r6, 0 beq _080B4AC4 ldr r0, [r4] subs r5, r0, r6 str r6, [r4] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _080B4AA2 ldr r0, [r4, 0x14] b _080B4AA4 .align 2, 0 _080B4A90: .4byte gUnknown_203B7A8 _080B4A94: movs r0, 0x40 ldrh r1, [r4, 0xC] orrs r0, r1 strh r0, [r4, 0xC] movs r0, 0x1 negs r0, r0 b _080B4AC6 _080B4AA2: movs r0, 0 _080B4AA4: str r0, [r4, 0x8] cmp r5, 0 ble _080B4AC4 _080B4AAA: ldr r0, [r4, 0x1C] ldr r3, [r4, 0x24] adds r1, r6, 0 adds r2, r5, 0 bl _call_via_r3 adds r1, r0, 0 cmp r1, 0 ble _080B4A94 adds r6, r1 subs r5, r1 cmp r5, 0 bgt _080B4AAA _080B4AC4: movs r0, 0 _080B4AC6: pop {r4-r6,pc} thumb_func_end sub_80B4A34 thumb_func_start sub_80B4AC8 sub_80B4AC8: push {r4,lr} movs r4, 0 str r4, [r0] str r4, [r0, 0x4] str r4, [r0, 0x8] strh r1, [r0, 0xC] strh r2, [r0, 0xE] str r4, [r0, 0x10] str r4, [r0, 0x18] str r0, [r0, 0x1C] ldr r1, _080B4AF0 str r1, [r0, 0x20] ldr r1, _080B4AF4 str r1, [r0, 0x24] ldr r1, _080B4AF8 str r1, [r0, 0x28] ldr r1, _080B4AFC str r1, [r0, 0x2C] str r3, [r0, 0x54] pop {r4,pc} .align 2, 0 _080B4AF0: .4byte sub_80B61F0 _080B4AF4: .4byte sub_80B6224 _080B4AF8: .4byte sub_80B6264 _080B4AFC: .4byte sub_80B62A4 thumb_func_end sub_80B4AC8 thumb_func_start sub_80B4B00 sub_80B4B00: push {r4-r6,lr} adds r5, r1, 0 movs r1, 0x58 adds r6, r5, 0 muls r6, r1 adds r1, r6, 0 adds r1, 0xC bl sub_80B53B4 adds r4, r0, 0 cmp r4, 0 beq _080B4B2C adds r0, 0xC movs r1, 0 str r1, [r4] str r5, [r4, 0x4] str r0, [r4, 0x8] adds r2, r6, 0 bl memset adds r0, r4, 0 b _080B4B2E _080B4B2C: movs r0, 0 _080B4B2E: pop {r4-r6,pc} thumb_func_end sub_80B4B00 thumb_func_start sub_80B4B30 sub_80B4B30: push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x38] cmp r0, 0 bne _080B4B40 adds r0, r5, 0 bl sub_80B4BC4 _080B4B40: movs r0, 0xEC lsls r0, 1 adds r4, r5, r0 b _080B4B4A _080B4B48: ldr r4, [r4] _080B4B4A: ldr r2, [r4, 0x8] ldr r0, [r4, 0x4] b _080B4B5A _080B4B50: movs r3, 0xC ldrsh r1, [r2, r3] cmp r1, 0 beq _080B4B7C adds r2, 0x58 _080B4B5A: subs r0, 0x1 cmp r0, 0 bge _080B4B50 ldr r0, [r4] cmp r0, 0 bne _080B4B48 adds r0, r5, 0 movs r1, 0x4 bl sub_80B4B00 str r0, [r4] cmp r0, 0 bne _080B4B48 movs r0, 0xC str r0, [r5] movs r0, 0 b _080B4B9C _080B4B7C: movs r0, 0x1 strh r0, [r2, 0xC] str r1, [r2] str r1, [r2, 0x8] str r1, [r2, 0x4] str r1, [r2, 0x10] str r1, [r2, 0x14] str r1, [r2, 0x18] ldr r0, _080B4BA0 strh r0, [r2, 0xE] str r1, [r2, 0x30] str r1, [r2, 0x34] str r1, [r2, 0x44] str r1, [r2, 0x48] str r5, [r2, 0x54] adds r0, r2, 0 _080B4B9C: pop {r4,r5,pc} .align 2, 0 _080B4BA0: .4byte 0x0000ffff thumb_func_end sub_80B4B30 thumb_func_start sub_80B4BA4 sub_80B4BA4: push {lr} ldr r1, _080B4BB0 bl sub_80B50D0 pop {pc} .align 2, 0 _080B4BB0: .4byte sub_80B4A34 thumb_func_end sub_80B4BA4 thumb_func_start sub_80B4BB4 sub_80B4BB4: push {lr} ldr r0, _080B4BC0 ldr r0, [r0] bl sub_80B4BA4 pop {pc} .align 2, 0 _080B4BC0: .4byte gUnknown_203B7A8 thumb_func_end sub_80B4BB4 thumb_func_start sub_80B4BC4 sub_80B4BC4: push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080B4C20 str r0, [r5, 0x3C] movs r0, 0x1 str r0, [r5, 0x38] movs r0, 0xF2 lsls r0, 1 adds r4, r5, r0 adds r0, r4, 0 movs r1, 0x4 movs r2, 0 adds r3, r5, 0 bl sub_80B4AC8 movs r1, 0x8F lsls r1, 2 adds r0, r5, r1 movs r1, 0x9 movs r2, 0x1 adds r3, r5, 0 bl sub_80B4AC8 movs r1, 0xA5 lsls r1, 2 adds r0, r5, r1 movs r1, 0xA movs r2, 0x2 adds r3, r5, 0 bl sub_80B4AC8 movs r0, 0xEC lsls r0, 1 adds r1, r5, r0 movs r0, 0 str r0, [r1] movs r0, 0xEE lsls r0, 1 adds r1, r5, r0 movs r0, 0x3 str r0, [r1] movs r1, 0xF0 lsls r1, 1 adds r0, r5, r1 str r4, [r0] pop {r4,r5,pc} .align 2, 0 _080B4C20: .4byte sub_80B4BA4 thumb_func_end sub_80B4BC4 thumb_func_start _free_r _free_r: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r0 adds r4, r1, 0 cmp r4, 0 bne _080B4C36 b _080B4DDA _080B4C36: bl __malloc_lock adds r5, r4, 0 subs r5, 0x8 ldr r1, [r5, 0x4] movs r6, 0x2 negs r6, r6 ands r6, r1 adds r7, r5, r6 ldr r4, [r7, 0x4] movs r0, 0x4 negs r0, r0 ands r4, r0 ldr r0, _080B4C98 mov r12, r0 ldr r0, [r0, 0x8] cmp r7, r0 bne _080B4CA4 adds r6, r4 movs r4, 0x1 ands r1, r4 cmp r1, 0 bne _080B4C72 ldr r0, [r5] subs r5, r0 adds r6, r0 ldr r3, [r5, 0xC] ldr r2, [r5, 0x8] str r3, [r2, 0xC] str r2, [r3, 0x8] _080B4C72: adds r0, r6, 0 orrs r0, r4 str r0, [r5, 0x4] mov r2, r12 str r5, [r2, 0x8] ldr r0, _080B4C9C ldr r0, [r0] cmp r6, r0 bcc _080B4C8E ldr r0, _080B4CA0 ldr r1, [r0] mov r0, r9 bl _malloc_trim_r _080B4C8E: mov r0, r9 bl nullsub_127 b _080B4DDA .align 2, 0 _080B4C98: .4byte gUnknown_203B7C0 _080B4C9C: .4byte gUnknown_203BBC8 _080B4CA0: .4byte gUnknown_203BBCC _080B4CA4: str r4, [r7, 0x4] movs r0, 0 mov r8, r0 movs r0, 0x1 ands r1, r0 cmp r1, 0 bne _080B4CD0 ldr r0, [r5] subs r5, r0 adds r6, r0 ldr r1, [r5, 0x8] mov r0, r12 adds r0, 0x8 cmp r1, r0 bne _080B4CC8 movs r2, 0x1 mov r8, r2 b _080B4CD0 _080B4CC8: ldr r3, [r5, 0xC] adds r2, r1, 0 str r3, [r2, 0xC] str r2, [r3, 0x8] _080B4CD0: adds r0, r7, r4 ldr r0, [r0, 0x4] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _080B4D08 adds r6, r4 ldr r1, [r7, 0x8] mov r0, r8 cmp r0, 0 bne _080B4D00 ldr r0, _080B4CFC cmp r1, r0 bne _080B4D00 movs r2, 0x1 mov r8, r2 str r5, [r1, 0xC] str r5, [r1, 0x8] str r1, [r5, 0xC] str r1, [r5, 0x8] b _080B4D08 .align 2, 0 _080B4CFC: .4byte gUnknown_203B7C8 _080B4D00: ldr r3, [r7, 0xC] adds r2, r1, 0 str r3, [r2, 0xC] str r2, [r3, 0x8] _080B4D08: movs r1, 0x1 adds r0, r6, 0 orrs r0, r1 str r0, [r5, 0x4] adds r0, r5, r6 str r6, [r0] mov r0, r8 cmp r0, 0 bne _080B4DD4 ldr r0, _080B4D38 cmp r6, r0 bhi _080B4D40 lsrs r4, r6, 3 ldr r2, _080B4D3C adds r0, r4, 0 asrs r0, 2 lsls r1, r0 ldr r0, [r2, 0x4] orrs r0, r1 str r0, [r2, 0x4] lsls r0, r4, 3 adds r3, r0, r2 ldr r2, [r3, 0x8] b _080B4DCC .align 2, 0 _080B4D38: .4byte 0x000001ff _080B4D3C: .4byte gUnknown_203B7C0 _080B4D40: lsrs r1, r6, 9 cmp r1, 0 bne _080B4D4A lsrs r4, r6, 3 b _080B4D92 _080B4D4A: cmp r1, 0x4 bhi _080B4D56 lsrs r0, r6, 6 adds r4, r0, 0 adds r4, 0x38 b _080B4D92 _080B4D56: cmp r1, 0x14 bhi _080B4D60 adds r4, r1, 0 adds r4, 0x5B b _080B4D92 _080B4D60: cmp r1, 0x54 bhi _080B4D6C lsrs r0, r6, 12 adds r4, r0, 0 adds r4, 0x6E b _080B4D92 _080B4D6C: movs r0, 0xAA lsls r0, 1 cmp r1, r0 bhi _080B4D7C lsrs r0, r6, 15 adds r4, r0, 0 adds r4, 0x77 b _080B4D92 _080B4D7C: ldr r0, _080B4D8C cmp r1, r0 bhi _080B4D90 lsrs r0, r6, 18 adds r4, r0, 0 adds r4, 0x7C b _080B4D92 .align 2, 0 _080B4D8C: .4byte 0x00000554 _080B4D90: movs r4, 0x7E _080B4D92: lsls r0, r4, 3 ldr r7, _080B4DB0 adds r3, r0, r7 ldr r2, [r3, 0x8] cmp r2, r3 bne _080B4DB4 adds r0, r4, 0 asrs r0, 2 movs r1, 0x1 lsls r1, r0 ldr r0, [r7, 0x4] orrs r0, r1 str r0, [r7, 0x4] b _080B4DCC .align 2, 0 _080B4DB0: .4byte gUnknown_203B7C0 _080B4DB4: ldr r0, [r2, 0x4] movs r1, 0x4 negs r1, r1 b _080B4DC4 _080B4DBC: ldr r2, [r2, 0x8] cmp r2, r3 beq _080B4DCA ldr r0, [r2, 0x4] _080B4DC4: ands r0, r1 cmp r6, r0 bcc _080B4DBC _080B4DCA: ldr r3, [r2, 0xC] _080B4DCC: str r3, [r5, 0xC] str r2, [r5, 0x8] str r5, [r3, 0x8] str r5, [r2, 0xC] _080B4DD4: mov r0, r9 bl nullsub_127 _080B4DDA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7,pc} thumb_func_end _free_r thumb_func_start _malloc_trim_r _malloc_trim_r: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 adds r4, r1, 0 bl __malloc_lock ldr r0, _080B4E6C mov r8, r0 ldr r0, [r0, 0x8] ldr r6, [r0, 0x4] movs r0, 0x4 negs r0, r0 ands r6, r0 subs r4, r6, r4 movs r5, 0x80 lsls r5, 5 ldr r1, _080B4E70 adds r4, r1 adds r0, r4, 0 adds r1, r5, 0 bl sub_80B688C subs r0, 0x1 lsls r4, r0, 12 cmp r4, r5 blt _080B4E62 adds r0, r7, 0 movs r1, 0 bl _sbrk_r adds r2, r0, 0 mov r1, r8 ldr r0, [r1, 0x8] adds r0, r6 cmp r2, r0 bne _080B4E62 negs r1, r4 adds r0, r7, 0 bl _sbrk_r movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080B4E7C adds r0, r7, 0 movs r1, 0 bl _sbrk_r adds r2, r0, 0 mov r0, r8 ldr r3, [r0, 0x8] subs r6, r2, r3 cmp r6, 0xF ble _080B4E62 ldr r1, _080B4E74 ldr r0, _080B4E78 ldr r0, [r0] subs r0, r2, r0 str r0, [r1] movs r0, 0x1 orrs r6, r0 str r6, [r3, 0x4] _080B4E62: adds r0, r7, 0 bl nullsub_127 movs r0, 0 b _080B4E98 .align 2, 0 _080B4E6C: .4byte gUnknown_203B7C0 _080B4E70: .4byte 0x00000fef _080B4E74: .4byte gUnknown_203BBDC _080B4E78: .4byte gUnknown_203BBD0 _080B4E7C: mov r1, r8 ldr r2, [r1, 0x8] subs r0, r6, r4 movs r1, 0x1 orrs r0, r1 str r0, [r2, 0x4] ldr r1, _080B4EA0 ldr r0, [r1] subs r0, r4 str r0, [r1] adds r0, r7, 0 bl nullsub_127 movs r0, 0x1 _080B4E98: pop {r3} mov r8, r3 pop {r4-r7,pc} .align 2, 0 _080B4EA0: .4byte gUnknown_203BBDC thumb_func_end _malloc_trim_r thumb_func_start sub_80B4EA4 sub_80B4EA4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r5, r0, 0 mov r10, r1 ldr r6, [r1, 0x8] cmp r6, 0 bne _080B4EBC b _080B50B2 _080B4EBC: movs r0, 0x8 ldrh r1, [r5, 0xC] ands r0, r1 cmp r0, 0 beq _080B4ECC ldr r0, [r5, 0x10] cmp r0, 0 bne _080B4ED8 _080B4ECC: adds r0, r5, 0 bl sub_80B3B34 cmp r0, 0 beq _080B4ED8 b _080B50BE _080B4ED8: mov r2, r10 ldr r2, [r2] mov r8, r2 movs r6, 0 ldrh r1, [r5, 0xC] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080B4F2C _080B4EEA: ldr r0, [r5, 0x1C] ldr r3, [r5, 0x24] cmp r6, 0 bne _080B4F00 _080B4EF2: mov r1, r8 ldr r7, [r1] ldr r6, [r1, 0x4] movs r2, 0x8 add r8, r2 cmp r6, 0 beq _080B4EF2 _080B4F00: adds r2, r6, 0 movs r1, 0x80 lsls r1, 3 cmp r6, r1 bls _080B4F0C adds r2, r1, 0 _080B4F0C: adds r1, r7, 0 bl _call_via_r3 adds r4, r0, 0 cmp r4, 0 bgt _080B4F1A b _080B50B6 _080B4F1A: adds r7, r4 subs r6, r4 mov r1, r10 ldr r0, [r1, 0x8] subs r0, r4 str r0, [r1, 0x8] cmp r0, 0 bne _080B4EEA b _080B50B2 _080B4F2C: movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080B4FE6 _080B4F34: ldrh r1, [r5, 0xC] ldr r0, [r5, 0x8] ldr r3, [r5] cmp r6, 0 bne _080B4F4C _080B4F3E: mov r2, r8 ldr r7, [r2] ldr r6, [r2, 0x4] movs r2, 0x8 add r8, r2 cmp r6, 0 beq _080B4F3E _080B4F4C: adds r4, r0, 0 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080B4F7A cmp r6, r4 bcs _080B4F60 adds r4, r6, 0 _080B4F60: adds r0, r3, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_80B5820 ldr r0, [r5, 0x8] subs r0, r4 str r0, [r5, 0x8] ldr r0, [r5] adds r0, r4 str r0, [r5] adds r4, r6, 0 b _080B4FD4 _080B4F7A: ldr r0, [r5, 0x10] cmp r3, r0 bls _080B4FA2 cmp r6, r4 bls _080B4FA2 adds r0, r3, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_80B5820 ldr r0, [r5] adds r0, r4 str r0, [r5] adds r0, r5, 0 bl sub_80B4A34 cmp r0, 0 beq _080B4FA0 b _080B50B6 _080B4FA0: b _080B4FD4 _080B4FA2: ldr r4, [r5, 0x14] cmp r6, r4 bcc _080B4FBC ldr r0, [r5, 0x1C] ldr r3, [r5, 0x24] adds r1, r7, 0 adds r2, r4, 0 bl _call_via_r3 adds r4, r0, 0 cmp r4, 0 ble _080B50B6 b _080B4FD4 _080B4FBC: adds r4, r6, 0 adds r0, r3, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_80B5820 ldr r0, [r5, 0x8] subs r0, r4 str r0, [r5, 0x8] ldr r0, [r5] adds r0, r4 str r0, [r5] _080B4FD4: adds r7, r4 subs r6, r4 mov r1, r10 ldr r0, [r1, 0x8] subs r0, r4 str r0, [r1, 0x8] cmp r0, 0 bne _080B4F34 b _080B50B2 _080B4FE6: movs r2, 0 str r2, [sp] _080B4FEA: cmp r6, 0 bne _080B5000 movs r0, 0 str r0, [sp] _080B4FF2: mov r1, r8 ldr r7, [r1] ldr r6, [r1, 0x4] movs r2, 0x8 add r8, r2 cmp r6, 0 beq _080B4FF2 _080B5000: ldr r0, [sp] cmp r0, 0 bne _080B5024 adds r0, r7, 0 movs r1, 0xA adds r2, r6, 0 bl sub_80B57A0 adds r1, r0, 0 cmp r1, 0 beq _080B501C subs r0, r7, 0x1 subs r1, r0 b _080B501E _080B501C: adds r1, r6, 0x1 _080B501E: mov r9, r1 movs r2, 0x1 str r2, [sp] _080B5024: mov r2, r9 cmp r9, r6 bls _080B502C adds r2, r6, 0 _080B502C: ldr r0, [r5, 0x8] ldr r1, [r5, 0x14] adds r4, r0, r1 ldr r0, [r5, 0x10] ldr r3, [r5] cmp r3, r0 bls _080B505A cmp r2, r4 ble _080B505A adds r0, r3, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_80B5820 ldr r0, [r5] adds r0, r4 str r0, [r5] adds r0, r5, 0 bl sub_80B4A34 cmp r0, 0 bne _080B50B6 b _080B508A _080B505A: adds r4, r1, 0 cmp r2, r4 blt _080B5074 ldr r0, [r5, 0x1C] ldr r3, [r5, 0x24] adds r1, r7, 0 adds r2, r4, 0 bl _call_via_r3 adds r4, r0, 0 cmp r4, 0 ble _080B50B6 b _080B508A _080B5074: adds r4, r2, 0 adds r0, r3, 0 adds r1, r7, 0 bl sub_80B5820 ldr r0, [r5, 0x8] subs r0, r4 str r0, [r5, 0x8] ldr r0, [r5] adds r0, r4 str r0, [r5] _080B508A: mov r0, r9 subs r0, r4 mov r9, r0 cmp r0, 0 bne _080B50A2 adds r0, r5, 0 bl sub_80B4A34 cmp r0, 0 bne _080B50B6 movs r1, 0 str r1, [sp] _080B50A2: adds r7, r4 subs r6, r4 mov r2, r10 ldr r0, [r2, 0x8] subs r0, r4 str r0, [r2, 0x8] cmp r0, 0 bne _080B4FEA _080B50B2: movs r0, 0 b _080B50C2 _080B50B6: movs r0, 0x40 ldrh r1, [r5, 0xC] orrs r0, r1 strh r0, [r5, 0xC] _080B50BE: movs r0, 0x1 negs r0, r0 _080B50C2: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7,pc} thumb_func_end sub_80B4EA4 thumb_func_start sub_80B50D0 sub_80B50D0: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r1 movs r7, 0 movs r1, 0xEC lsls r1, 1 adds r6, r0, r1 cmp r6, 0 beq _080B5108 _080B50E4: ldr r5, [r6, 0x8] ldr r4, [r6, 0x4] b _080B50FC _080B50EA: movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0 beq _080B50FA adds r0, r5, 0 bl _call_via_r8 orrs r7, r0 _080B50FA: adds r5, 0x58 _080B50FC: subs r4, 0x1 cmp r4, 0 bge _080B50EA ldr r6, [r6] cmp r6, 0 bne _080B50E4 _080B5108: adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7,pc} thumb_func_end sub_80B50D0 thumb_func_start sub_80B5110 sub_80B5110: push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 adds r4, r2, 0 cmp r4, 0 beq _080B5144 ldr r1, _080B5138 adds r0, r4, 0 bl strcmp cmp r0, 0 beq _080B5140 ldr r1, _080B513C adds r0, r4, 0 bl strcmp cmp r0, 0 beq _080B5140 movs r0, 0 b _080B5146 .align 2, 0 _080B5138: .4byte gUnknown_826FEB0 _080B513C: .4byte gUnknown_826FEA8 _080B5140: str r6, [r5, 0x30] str r4, [r5, 0x34] _080B5144: ldr r0, _080B5148 _080B5146: pop {r4-r6,pc} .align 2, 0 _080B5148: .4byte gUnknown_826FEB0 thumb_func_end sub_80B5110 thumb_func_start sub_80B514C sub_80B514C: ldr r0, _080B5150 bx lr .align 2, 0 _080B5150: .4byte gUnknown_826FE78 thumb_func_end sub_80B514C thumb_func_start sub_80B5154 sub_80B5154: push {lr} adds r3, r0, 0 adds r2, r1, 0 ldr r0, _080B5168 ldr r0, [r0] adds r1, r3, 0 bl sub_80B5110 pop {pc} .align 2, 0 _080B5168: .4byte gUnknown_203B7A8 thumb_func_end sub_80B5154 thumb_func_start sub_80B516C sub_80B516C: push {lr} ldr r0, _080B5178 ldr r0, [r0] bl sub_80B514C pop {pc} .align 2, 0 _080B5178: .4byte gUnknown_203B7A8 thumb_func_end sub_80B516C thumb_func_start sub_80B517C sub_80B517C: push {r4-r7,lr} sub sp, 0x3C adds r4, r0, 0 movs r0, 0x2 ldrh r1, [r4, 0xC] ands r0, r1 cmp r0, 0 bne _080B5212 movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 blt _080B51A4 ldr r0, [r4, 0x54] movs r2, 0xE ldrsh r1, [r4, r2] mov r2, sp bl sub_80B67D8 cmp r0, 0 bge _080B51B6 _080B51A4: movs r7, 0 movs r6, 0x80 lsls r6, 3 movs r1, 0x80 lsls r1, 4 adds r0, r1, 0 ldrh r2, [r4, 0xC] orrs r0, r2 b _080B51FA _080B51B6: movs r7, 0 ldr r1, [sp, 0x4] movs r0, 0xF0 lsls r0, 8 ands r1, r0 movs r0, 0x80 lsls r0, 6 cmp r1, r0 bne _080B51CA movs r7, 0x1 _080B51CA: movs r6, 0x80 lsls r6, 3 movs r0, 0x80 lsls r0, 8 cmp r1, r0 bne _080B51F0 ldr r1, [r4, 0x28] ldr r0, _080B51EC cmp r1, r0 bne _080B51F0 adds r0, r6, 0 ldrh r1, [r4, 0xC] orrs r0, r1 strh r0, [r4, 0xC] str r6, [r4, 0x4C] b _080B51FC .align 2, 0 _080B51EC: .4byte sub_80B6264 _080B51F0: movs r2, 0x80 lsls r2, 4 adds r0, r2, 0 ldrh r1, [r4, 0xC] orrs r0, r1 _080B51FA: strh r0, [r4, 0xC] _080B51FC: ldr r0, [r4, 0x54] adds r1, r6, 0 bl sub_80B53B4 adds r2, r0, 0 cmp r2, 0 bne _080B5220 movs r0, 0x2 ldrh r2, [r4, 0xC] orrs r0, r2 strh r0, [r4, 0xC] _080B5212: adds r0, r4, 0 adds r0, 0x43 str r0, [r4] str r0, [r4, 0x10] movs r0, 0x1 str r0, [r4, 0x14] b _080B524E _080B5220: ldr r1, [r4, 0x54] ldr r0, _080B5254 str r0, [r1, 0x3C] movs r0, 0x80 movs r5, 0 ldrh r1, [r4, 0xC] orrs r0, r1 strh r0, [r4, 0xC] str r2, [r4] str r2, [r4, 0x10] str r6, [r4, 0x14] cmp r7, 0 beq _080B524E movs r2, 0xE ldrsh r0, [r4, r2] bl isatty cmp r0, 0 beq _080B524E movs r0, 0x1 ldrh r1, [r4, 0xC] orrs r0, r1 strh r0, [r4, 0xC] _080B524E: add sp, 0x3C pop {r4-r7,pc} .align 2, 0 _080B5254: .4byte sub_80B4BA4 thumb_func_end sub_80B517C thumb_func_start sub_80B5258 sub_80B5258: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 str r0, [sp] ldr r0, _080B52CC ldr r0, [r0, 0x8] mov r8, r0 ldr r7, [r0, 0x4] movs r0, 0x4 negs r0, r0 ands r7, r0 mov r2, r8 adds r4, r2, r7 ldr r0, _080B52D0 ldr r0, [r0] adds r1, r0 adds r6, r1, 0 adds r6, 0x10 ldr r3, _080B52D4 mov r10, r3 ldr r0, [r3] movs r2, 0x1 negs r2, r2 mov r9, r2 cmp r0, r9 beq _080B529A ldr r3, _080B52D8 adds r6, r1, r3 ldr r0, _080B52DC ands r6, r0 _080B529A: ldr r0, [sp] adds r1, r6, 0 bl _sbrk_r adds r5, r0, 0 cmp r5, r9 beq _080B539C cmp r5, r4 bcs _080B52B2 ldr r0, _080B52CC cmp r8, r0 bne _080B539C _080B52B2: ldr r1, _080B52E0 ldr r0, [r1] adds r2, r0, r6 str r2, [r1] cmp r5, r4 bne _080B52E4 adds r2, r6, r7 ldr r3, _080B52CC ldr r1, [r3, 0x8] movs r0, 0x1 orrs r2, r0 str r2, [r1, 0x4] b _080B5384 .align 2, 0 _080B52CC: .4byte gUnknown_203B7C0 _080B52D0: .4byte gUnknown_203BBCC _080B52D4: .4byte gUnknown_203BBD0 _080B52D8: .4byte 0x0000100f _080B52DC: .4byte 0xfffff000 _080B52E0: .4byte gUnknown_203BBDC _080B52E4: mov r3, r10 ldr r0, [r3] cmp r0, r9 bne _080B52F0 str r5, [r3] b _080B52F6 _080B52F0: subs r0, r5, r4 adds r0, r2, r0 str r0, [r1] _080B52F6: adds r1, r5, 0 adds r1, 0x8 movs r0, 0x7 ands r1, r0 cmp r1, 0 beq _080B530A movs r0, 0x8 subs r4, r0, r1 adds r5, r4 b _080B530C _080B530A: movs r4, 0 _080B530C: adds r0, r5, r6 movs r1, 0x80 lsls r1, 5 subs r1, 0x1 ands r0, r1 movs r1, 0x80 lsls r1, 5 subs r0, r1, r0 adds r4, r0 ldr r0, [sp] adds r1, r4, 0 bl _sbrk_r adds r2, r0, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _080B539C ldr r1, _080B5354 ldr r0, [r1] adds r0, r4 str r0, [r1] ldr r1, _080B5358 str r5, [r1, 0x8] subs r0, r2, r5 adds r2, r0, r4 movs r3, 0x1 orrs r2, r3 str r2, [r5, 0x4] cmp r8, r1 beq _080B5384 cmp r7, 0xF bhi _080B535C str r3, [r5, 0x4] b _080B539C .align 2, 0 _080B5354: .4byte gUnknown_203BBDC _080B5358: .4byte gUnknown_203B7C0 _080B535C: subs r7, 0xC movs r0, 0x8 negs r0, r0 ands r7, r0 mov r2, r8 ldr r0, [r2, 0x4] ands r0, r3 orrs r0, r7 str r0, [r2, 0x4] adds r1, r2, r7 movs r0, 0x5 str r0, [r1, 0x4] str r0, [r1, 0x8] cmp r7, 0xF bls _080B5384 mov r1, r8 adds r1, 0x8 ldr r0, [sp] bl _free_r _080B5384: ldr r0, _080B53A8 ldr r2, _080B53AC ldr r1, [r0] ldr r0, [r2] cmp r1, r0 bls _080B5392 str r1, [r2] _080B5392: ldr r2, _080B53B0 ldr r0, [r2] cmp r1, r0 bls _080B539C str r1, [r2] _080B539C: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7,pc} .align 2, 0 _080B53A8: .4byte gUnknown_203BBDC _080B53AC: .4byte gUnknown_203BBD4 _080B53B0: .4byte gUnknown_203BBD8 thumb_func_end sub_80B5258 thumb_func_start sub_80B53B4 sub_80B53B4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 str r0, [sp] adds r1, 0xB cmp r1, 0x16 ble _080B53D6 movs r0, 0x8 negs r0, r0 mov r8, r0 mov r2, r8 ands r2, r1 mov r8, r2 b _080B53DA _080B53D6: movs r3, 0x10 mov r8, r3 _080B53DA: ldr r0, [sp] bl __malloc_lock ldr r0, _080B5420 cmp r8, r0 bhi _080B542E mov r4, r8 lsrs r4, 3 mov r12, r4 ldr r0, _080B5424 mov r7, r8 adds r2, r7, r0 ldr r5, [r2, 0xC] cmp r5, r2 bne _080B5402 adds r2, r5, 0 adds r2, 0x8 ldr r5, [r2, 0xC] cmp r5, r2 beq _080B5428 _080B5402: ldr r2, [r5, 0x4] movs r0, 0x4 negs r0, r0 ands r2, r0 ldr r6, [r5, 0xC] ldr r4, [r5, 0x8] str r6, [r4, 0xC] str r4, [r6, 0x8] adds r2, r5, r2 ldr r0, [r2, 0x4] movs r1, 0x1 orrs r0, r1 str r0, [r2, 0x4] b _080B575A .align 2, 0 _080B5420: .4byte 0x000001f7 _080B5424: .4byte gUnknown_203B7C0 _080B5428: movs r0, 0x2 add r12, r0 b _080B54DA _080B542E: mov r2, r8 lsrs r1, r2, 9 cmp r1, 0 bne _080B543A lsrs r2, 3 b _080B548A _080B543A: cmp r1, 0x4 bhi _080B5448 mov r3, r8 lsrs r0, r3, 6 adds r0, 0x38 mov r12, r0 b _080B548C _080B5448: cmp r1, 0x14 bhi _080B5452 adds r1, 0x5B mov r12, r1 b _080B548C _080B5452: cmp r1, 0x54 bhi _080B5460 mov r4, r8 lsrs r0, r4, 12 adds r0, 0x6E mov r12, r0 b _080B548C _080B5460: movs r0, 0xAA lsls r0, 1 cmp r1, r0 bhi _080B5472 mov r7, r8 lsrs r0, r7, 15 adds r0, 0x77 mov r12, r0 b _080B548C _080B5472: ldr r0, _080B5484 cmp r1, r0 bhi _080B5488 mov r1, r8 lsrs r0, r1, 18 adds r0, 0x7C mov r12, r0 b _080B548C .align 2, 0 _080B5484: .4byte 0x00000554 _080B5488: movs r2, 0x7E _080B548A: mov r12, r2 _080B548C: mov r3, r12 lsls r0, r3, 3 ldr r1, _080B54B0 adds r4, r0, r1 ldr r5, [r4, 0xC] cmp r5, r4 beq _080B54D6 ldr r1, [r5, 0x4] movs r0, 0x4 negs r0, r0 ands r1, r0 mov r7, r8 subs r3, r1, r7 cmp r3, 0xF ble _080B54B4 adds r0, 0x3 add r12, r0 b _080B54D6 .align 2, 0 _080B54B0: .4byte gUnknown_203B7C0 _080B54B4: cmp r3, 0 blt _080B54BA b _080B56F4 _080B54BA: ldr r5, [r5, 0xC] cmp r5, r4 beq _080B54D6 ldr r1, [r5, 0x4] movs r0, 0x4 negs r0, r0 ands r1, r0 mov r2, r8 subs r3, r1, r2 cmp r3, 0xF ble _080B54B4 movs r3, 0x1 negs r3, r3 add r12, r3 _080B54D6: movs r4, 0x1 add r12, r4 _080B54DA: ldr r0, _080B5518 ldr r5, [r0, 0x8] mov r10, r0 cmp r5, r10 bne _080B54E6 b _080B55E8 _080B54E6: ldr r1, [r5, 0x4] movs r0, 0x4 negs r0, r0 ands r1, r0 mov r7, r8 subs r3, r1, r7 cmp r3, 0xF ble _080B551C adds r2, r5, r7 movs r1, 0x1 adds r0, r7, 0 orrs r0, r1 str r0, [r5, 0x4] mov r4, r10 str r2, [r4, 0xC] str r2, [r4, 0x8] str r4, [r2, 0xC] str r4, [r2, 0x8] adds r0, r3, 0 orrs r0, r1 str r0, [r2, 0x4] adds r0, r2, r3 str r3, [r0] b _080B575A .align 2, 0 _080B5518: .4byte gUnknown_203B7C8 _080B551C: mov r7, r10 str r7, [r7, 0xC] str r7, [r7, 0x8] cmp r3, 0 blt _080B5532 adds r2, r5, r1 ldr r0, [r2, 0x4] movs r1, 0x1 orrs r0, r1 str r0, [r2, 0x4] b _080B575A _080B5532: ldr r0, _080B5554 cmp r1, r0 bhi _080B5558 lsrs r2, r1, 3 mov r3, r10 subs r3, 0x8 adds r0, r2, 0 asrs r0, 2 movs r1, 0x1 lsls r1, r0 ldr r0, [r3, 0x4] orrs r0, r1 str r0, [r3, 0x4] lsls r0, r2, 3 adds r6, r0, r3 ldr r4, [r6, 0x8] b _080B55E0 .align 2, 0 _080B5554: .4byte 0x000001ff _080B5558: lsrs r2, r1, 9 cmp r2, 0 bne _080B5562 lsrs r2, r1, 3 b _080B55A6 _080B5562: cmp r2, 0x4 bhi _080B556E lsrs r0, r1, 6 adds r2, r0, 0 adds r2, 0x38 b _080B55A6 _080B556E: cmp r2, 0x14 bhi _080B5576 adds r2, 0x5B b _080B55A6 _080B5576: cmp r2, 0x54 bhi _080B5582 lsrs r0, r1, 12 adds r2, r0, 0 adds r2, 0x6E b _080B55A6 _080B5582: movs r0, 0xAA lsls r0, 1 cmp r2, r0 bhi _080B5592 lsrs r0, r1, 15 adds r2, r0, 0 adds r2, 0x77 b _080B55A6 _080B5592: ldr r0, _080B55A0 cmp r2, r0 bhi _080B55A4 lsrs r0, r1, 18 adds r2, r0, 0 adds r2, 0x7C b _080B55A6 .align 2, 0 _080B55A0: .4byte 0x00000554 _080B55A4: movs r2, 0x7E _080B55A6: lsls r0, r2, 3 ldr r3, _080B55C4 adds r6, r0, r3 ldr r4, [r6, 0x8] cmp r4, r6 bne _080B55C8 adds r0, r2, 0 asrs r0, 2 movs r1, 0x1 lsls r1, r0 ldr r7, _080B55C4 ldr r0, [r7, 0x4] orrs r0, r1 str r0, [r7, 0x4] b _080B55E0 .align 2, 0 _080B55C4: .4byte gUnknown_203B7C0 _080B55C8: ldr r0, [r4, 0x4] movs r2, 0x4 negs r2, r2 b _080B55D8 _080B55D0: ldr r4, [r4, 0x8] cmp r4, r6 beq _080B55DE ldr r0, [r4, 0x4] _080B55D8: ands r0, r2 cmp r1, r0 bcc _080B55D0 _080B55DE: ldr r6, [r4, 0xC] _080B55E0: str r6, [r5, 0xC] str r4, [r5, 0x8] str r5, [r6, 0x8] str r5, [r4, 0xC] _080B55E8: mov r0, r12 cmp r0, 0 bge _080B55F0 adds r0, 0x3 _080B55F0: asrs r0, 2 movs r6, 0x1 lsls r6, r0 ldr r0, _080B5614 ldr r1, [r0, 0x4] cmp r6, r1 bhi _080B56B2 adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _080B5626 movs r0, 0x4 negs r0, r0 mov r2, r12 ands r0, r2 adds r0, 0x4 mov r12, r0 b _080B561C .align 2, 0 _080B5614: .4byte gUnknown_203B7C0 _080B5618: movs r3, 0x4 add r12, r3 _080B561C: lsls r6, 1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080B5618 _080B5626: ldr r4, _080B56A4 mov r9, r4 _080B562A: mov r7, r12 str r7, [sp, 0x4] mov r1, r12 lsls r0, r1, 3 mov r3, r9 adds r2, r0, r3 adds r4, r2, 0 _080B5638: ldr r5, [r4, 0xC] cmp r5, r4 beq _080B5658 movs r0, 0x4 negs r0, r0 _080B5642: ldr r1, [r5, 0x4] ands r1, r0 mov r7, r8 subs r3, r1, r7 cmp r3, 0xF bgt _080B5708 cmp r3, 0 bge _080B5730 ldr r5, [r5, 0xC] cmp r5, r4 bne _080B5642 _080B5658: adds r4, 0x8 movs r0, 0x1 add r12, r0 mov r0, r12 movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _080B5638 _080B5668: ldr r0, [sp, 0x4] ands r0, r1 cmp r0, 0 beq _080B56A8 ldr r3, [sp, 0x4] subs r3, 0x1 str r3, [sp, 0x4] subs r2, 0x8 ldr r0, [r2, 0x8] cmp r0, r2 beq _080B5668 _080B567E: lsls r6, 1 mov r4, r9 ldr r1, [r4, 0x4] cmp r6, r1 bhi _080B56B2 cmp r6, 0 beq _080B56B2 adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _080B562A _080B5694: movs r7, 0x4 add r12, r7 lsls r6, 1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080B5694 b _080B562A .align 2, 0 _080B56A4: .4byte gUnknown_203B7C0 _080B56A8: mov r1, r9 ldr r0, [r1, 0x4] bics r0, r6 str r0, [r1, 0x4] b _080B567E _080B56B2: ldr r2, _080B56F0 ldr r0, [r2, 0x8] ldr r0, [r0, 0x4] movs r4, 0x4 negs r4, r4 ands r0, r4 mov r7, r8 subs r3, r0, r7 cmp r0, r8 bcc _080B56CA cmp r3, 0xF bgt _080B5744 _080B56CA: ldr r0, [sp] mov r1, r8 bl sub_80B5258 ldr r1, _080B56F0 ldr r0, [r1, 0x8] ldr r0, [r0, 0x4] ands r0, r4 mov r2, r8 subs r3, r0, r2 cmp r0, r8 bcc _080B56E6 cmp r3, 0xF bgt _080B5744 _080B56E6: ldr r0, [sp] bl nullsub_127 movs r0, 0 b _080B5764 .align 2, 0 _080B56F0: .4byte gUnknown_203B7C0 _080B56F4: ldr r6, [r5, 0xC] ldr r4, [r5, 0x8] str r6, [r4, 0xC] str r4, [r6, 0x8] adds r2, r5, r1 ldr r0, [r2, 0x4] movs r1, 0x1 orrs r0, r1 str r0, [r2, 0x4] b _080B575A _080B5708: mov r4, r8 adds r2, r5, r4 movs r1, 0x1 orrs r4, r1 str r4, [r5, 0x4] ldr r6, [r5, 0xC] ldr r4, [r5, 0x8] str r6, [r4, 0xC] str r4, [r6, 0x8] mov r7, r10 str r2, [r7, 0xC] str r2, [r7, 0x8] str r7, [r2, 0xC] str r7, [r2, 0x8] adds r0, r3, 0 orrs r0, r1 str r0, [r2, 0x4] adds r0, r2, r3 str r3, [r0] b _080B575A _080B5730: adds r2, r5, r1 ldr r0, [r2, 0x4] movs r1, 0x1 orrs r0, r1 str r0, [r2, 0x4] ldr r6, [r5, 0xC] ldr r4, [r5, 0x8] str r6, [r4, 0xC] str r4, [r6, 0x8] b _080B575A _080B5744: ldr r2, _080B5770 ldr r5, [r2, 0x8] movs r1, 0x1 mov r0, r8 orrs r0, r1 str r0, [r5, 0x4] mov r4, r8 adds r0, r5, r4 str r0, [r2, 0x8] orrs r3, r1 str r3, [r0, 0x4] _080B575A: ldr r0, [sp] bl nullsub_127 adds r0, r5, 0 adds r0, 0x8 _080B5764: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7,pc} .align 2, 0 _080B5770: .4byte gUnknown_203B7C0 thumb_func_end sub_80B53B4 thumb_func_start sub_80B5774 sub_80B5774: sub sp, 0x4 cmp r1, 0 bne _080B577C mov r1, sp _080B577C: cmp r2, 0 beq _080B5798 cmp r3, 0 bne _080B578A movs r0, 0x1 negs r0, r0 b _080B579A _080B578A: ldrb r0, [r2] str r0, [r1] ldrb r0, [r2] cmp r0, 0 beq _080B5798 movs r0, 0x1 b _080B579A _080B5798: movs r0, 0 _080B579A: add sp, 0x4 bx lr thumb_func_end sub_80B5774 thumb_func_start sub_80B57A0 sub_80B57A0: push {r4-r7,lr} adds r5, r1, 0 adds r1, r0, 0 movs r0, 0xFF ands r5, r0 cmp r2, 0x3 bls _080B5814 movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _080B5814 adds r4, r1, 0 movs r6, 0 movs r1, 0 _080B57BC: lsls r0, r6, 8 adds r6, r0, r5 adds r1, 0x1 cmp r1, 0x3 bls _080B57BC cmp r2, 0x3 bls _080B57FA ldr r0, _080B5800 mov r12, r0 ldr r7, _080B5804 _080B57D0: ldr r1, [r4] eors r1, r6 mov r3, r12 adds r0, r1, r3 bics r0, r1 ands r0, r7 cmp r0, 0 beq _080B57F2 adds r1, r4, 0 movs r3, 0 _080B57E4: ldrb r0, [r1] cmp r0, r5 beq _080B580E adds r1, 0x1 adds r3, 0x1 cmp r3, 0x3 bls _080B57E4 _080B57F2: subs r2, 0x4 adds r4, 0x4 cmp r2, 0x3 bhi _080B57D0 _080B57FA: adds r1, r4, 0 b _080B5814 .align 2, 0 _080B5800: .4byte 0xfefefeff _080B5804: .4byte 0x80808080 _080B5808: ldrb r0, [r1] cmp r0, r5 bne _080B5812 _080B580E: adds r0, r1, 0 b _080B581E _080B5812: adds r1, 0x1 _080B5814: adds r0, r2, 0 subs r2, 0x1 cmp r0, 0 bne _080B5808 movs r0, 0 _080B581E: pop {r4-r7,pc} thumb_func_end sub_80B57A0 thumb_func_start sub_80B5820 sub_80B5820: push {r4,r5,lr} adds r5, r0, 0 adds r4, r5, 0 adds r3, r1, 0 cmp r3, r5 bcs _080B5852 adds r0, r3, r2 cmp r5, r0 bcs _080B5852 adds r3, r0, 0 adds r4, r5, r2 subs r2, 0x1 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _080B58A4 adds r1, r0, 0 _080B5842: subs r4, 0x1 subs r3, 0x1 ldrb r0, [r3] strb r0, [r4] subs r2, 0x1 cmp r2, r1 bne _080B5842 b _080B58A4 _080B5852: cmp r2, 0xF bls _080B588A adds r0, r3, 0 orrs r0, r4 movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _080B588A adds r1, r3, 0 _080B5864: ldm r1!, {r0} stm r4!, {r0} ldm r1!, {r0} stm r4!, {r0} ldm r1!, {r0} stm r4!, {r0} ldm r1!, {r0} stm r4!, {r0} subs r2, 0x10 cmp r2, 0xF bhi _080B5864 cmp r2, 0x3 bls _080B5888 _080B587E: ldm r1!, {r0} stm r4!, {r0} subs r2, 0x4 cmp r2, 0x3 bhi _080B587E _080B5888: adds r3, r1, 0 _080B588A: subs r2, 0x1 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _080B58A4 adds r1, r0, 0 _080B5896: ldrb r0, [r3] strb r0, [r4] adds r3, 0x1 adds r4, 0x1 subs r2, 0x1 cmp r2, r1 bne _080B5896 _080B58A4: adds r0, r5, 0 pop {r4,r5,pc} thumb_func_end sub_80B5820 thumb_func_start __malloc_lock __malloc_lock: bx lr thumb_func_end __malloc_lock thumb_func_start nullsub_127 nullsub_127: bx lr thumb_func_end nullsub_127 thumb_func_start sub_80B58B0 sub_80B58B0: push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r0, [r4, 0x4C] cmp r0, 0 bne _080B58CC adds r0, r4, 0 movs r1, 0x4 movs r2, 0x10 bl sub_80B6748 str r0, [r4, 0x4C] cmp r0, 0 beq _080B58F4 _080B58CC: ldr r1, [r4, 0x4C] lsls r0, r6, 2 adds r2, r0, r1 ldr r1, [r2] cmp r1, 0 beq _080B58DE ldr r0, [r1] str r0, [r2] b _080B58FC _080B58DE: movs r5, 0x1 lsls r5, r6 lsls r2, r5, 2 adds r2, 0x14 adds r0, r4, 0 movs r1, 0x1 bl sub_80B6748 adds r1, r0, 0 cmp r1, 0 bne _080B58F8 _080B58F4: movs r0, 0 b _080B5904 _080B58F8: str r6, [r1, 0x4] str r5, [r1, 0x8] _080B58FC: movs r0, 0 str r0, [r1, 0x10] str r0, [r1, 0xC] adds r0, r1, 0 _080B5904: pop {r4-r6,pc} thumb_func_end sub_80B58B0 thumb_func_start sub_80B5908 sub_80B5908: adds r3, r0, 0 adds r2, r1, 0 cmp r2, 0 beq _080B591E ldr r0, [r2, 0x4] ldr r1, [r3, 0x4C] lsls r0, 2 adds r0, r1 ldr r1, [r0] str r1, [r2] str r2, [r0] _080B591E: bx lr thumb_func_end sub_80B5908 thumb_func_start sub_80B5920 sub_80B5920: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r0 adds r5, r1, 0 adds r4, r2, 0 mov r8, r3 ldr r6, [r5, 0x10] adds r3, r5, 0 adds r3, 0x14 movs r7, 0 ldr r0, _080B59B4 mov r12, r0 _080B593C: ldr r1, [r3] adds r0, r1, 0 mov r2, r12 ands r0, r2 adds r2, r0, 0 muls r2, r4 add r2, r8 lsrs r1, 16 adds r0, r1, 0 muls r0, r4 lsrs r1, r2, 16 adds r0, r1 lsrs r1, r0, 16 mov r8, r1 lsls r0, 16 mov r1, r12 ands r2, r1 adds r0, r2 stm r3!, {r0} adds r7, 0x1 cmp r7, r6 blt _080B593C mov r2, r8 cmp r2, 0 beq _080B59AA ldr r0, [r5, 0x8] cmp r6, r0 blt _080B599A ldr r1, [r5, 0x4] adds r1, 0x1 mov r0, r9 bl sub_80B58B0 adds r4, r0, 0 adds r0, 0xC adds r1, r5, 0 adds r1, 0xC ldr r2, [r5, 0x10] lsls r2, 2 adds r2, 0x8 bl memcpy mov r0, r9 adds r1, r5, 0 bl sub_80B5908 adds r5, r4, 0 _080B599A: lsls r1, r6, 2 adds r0, r5, 0 adds r0, 0x14 adds r0, r1 mov r1, r8 str r1, [r0] adds r6, 0x1 str r6, [r5, 0x10] _080B59AA: adds r0, r5, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7,pc} .align 2, 0 _080B59B4: .4byte 0x0000ffff thumb_func_end sub_80B5920 thumb_func_start sub_80B59B8 sub_80B59B8: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 adds r4, r1, 0 adds r6, r2, 0 mov r8, r3 mov r0, r8 adds r0, 0x8 movs r1, 0x9 bl __divsi3 movs r1, 0 movs r2, 0x1 cmp r0, 0x1 ble _080B59E0 _080B59D8: lsls r2, 1 adds r1, 0x1 cmp r0, r2 bgt _080B59D8 _080B59E0: adds r0, r7, 0 bl sub_80B58B0 adds r1, r0, 0 ldr r0, [sp, 0x18] str r0, [r1, 0x14] movs r0, 0x1 str r0, [r1, 0x10] movs r5, 0x9 cmp r6, 0x9 ble _080B5A12 adds r4, 0x9 _080B59F8: ldrb r3, [r4] subs r3, 0x30 adds r4, 0x1 adds r0, r7, 0 movs r2, 0xA bl sub_80B5920 adds r1, r0, 0 adds r5, 0x1 cmp r5, r6 blt _080B59F8 adds r4, 0x1 b _080B5A14 _080B5A12: adds r4, 0xA _080B5A14: cmp r5, r8 bge _080B5A32 mov r0, r8 subs r5, r0, r5 _080B5A1C: ldrb r3, [r4] subs r3, 0x30 adds r4, 0x1 adds r0, r7, 0 movs r2, 0xA bl sub_80B5920 adds r1, r0, 0 subs r5, 0x1 cmp r5, 0 bne _080B5A1C _080B5A32: adds r0, r1, 0 pop {r3} mov r8, r3 pop {r4-r7,pc} thumb_func_end sub_80B59B8 thumb_func_start sub_80B5A3C sub_80B5A3C: adds r1, r0, 0 movs r2, 0 ldr r0, _080B5A8C ands r0, r1 cmp r0, 0 bne _080B5A4C movs r2, 0x10 lsls r1, 16 _080B5A4C: movs r0, 0xFF lsls r0, 24 ands r0, r1 cmp r0, 0 bne _080B5A5A adds r2, 0x8 lsls r1, 8 _080B5A5A: movs r0, 0xF0 lsls r0, 24 ands r0, r1 cmp r0, 0 bne _080B5A68 adds r2, 0x4 lsls r1, 4 _080B5A68: movs r0, 0xC0 lsls r0, 24 ands r0, r1 cmp r0, 0 bne _080B5A76 adds r2, 0x2 lsls r1, 2 _080B5A76: cmp r1, 0 blt _080B5A90 adds r2, 0x1 movs r0, 0x80 lsls r0, 23 ands r0, r1 cmp r0, 0 bne _080B5A90 movs r0, 0x20 b _080B5A92 .align 2, 0 _080B5A8C: .4byte 0xffff0000 _080B5A90: adds r0, r2, 0 _080B5A92: bx lr thumb_func_end sub_80B5A3C thumb_func_start sub_80B5A94 sub_80B5A94: adds r3, r0, 0 ldr r1, [r3] movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _080B5AC4 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080B5AAC movs r0, 0 b _080B5B14 _080B5AAC: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080B5ABC lsrs r0, r1, 1 str r0, [r3] movs r0, 0x1 b _080B5B14 _080B5ABC: lsrs r0, r1, 2 str r0, [r3] movs r0, 0x2 b _080B5B14 _080B5AC4: movs r2, 0 ldr r0, _080B5B0C ands r0, r1 cmp r0, 0 bne _080B5AD2 movs r2, 0x10 lsrs r1, 16 _080B5AD2: movs r0, 0xFF ands r0, r1 cmp r0, 0 bne _080B5ADE adds r2, 0x8 lsrs r1, 8 _080B5ADE: movs r0, 0xF ands r0, r1 cmp r0, 0 bne _080B5AEA adds r2, 0x4 lsrs r1, 4 _080B5AEA: movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _080B5AF6 adds r2, 0x2 lsrs r1, 2 _080B5AF6: movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080B5B10 adds r2, 0x1 lsrs r1, 1 cmp r1, 0 bne _080B5B10 movs r0, 0x20 b _080B5B14 .align 2, 0 _080B5B0C: .4byte 0x0000ffff _080B5B10: str r1, [r3] adds r0, r2, 0 _080B5B14: bx lr thumb_func_end sub_80B5A94 thumb_func_start sub_80B5B18 sub_80B5B18: push {r4,lr} adds r4, r1, 0 movs r1, 0x1 bl sub_80B58B0 str r4, [r0, 0x14] movs r1, 0x1 str r1, [r0, 0x10] pop {r4,pc} thumb_func_end sub_80B5B18 thumb_func_start sub_80B5B2C sub_80B5B2C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 adds r3, r0, 0 adds r4, r1, 0 adds r5, r2, 0 ldr r1, [r4, 0x10] ldr r0, [r5, 0x10] cmp r1, r0 bge _080B5B4C str r4, [sp] adds r4, r5, 0 ldr r5, [sp] _080B5B4C: ldr r1, [r4, 0x4] ldr r6, [r4, 0x10] ldr r0, [r5, 0x10] mov r8, r0 mov r2, r8 adds r2, r6, r2 str r2, [sp, 0x4] ldr r0, [r4, 0x8] cmp r2, r0 ble _080B5B62 adds r1, 0x1 _080B5B62: adds r0, r3, 0 bl sub_80B58B0 str r0, [sp] adds r7, r0, 0 adds r7, 0x14 ldr r1, [sp, 0x4] lsls r0, r1, 2 adds r2, r7, r0 str r2, [sp, 0x8] str r0, [sp, 0x18] adds r1, r4, 0 adds r1, 0x14 lsls r3, r6, 2 adds r2, r5, 0 adds r2, 0x14 mov r5, r8 lsls r4, r5, 2 ldr r0, [sp, 0x8] cmp r7, r0 bcs _080B5B96 movs r0, 0 _080B5B8E: stm r7!, {r0} ldr r5, [sp, 0x8] cmp r7, r5 bcc _080B5B8E _080B5B96: str r1, [sp, 0x8] adds r3, r1, r3 str r3, [sp, 0xC] mov r8, r2 add r4, r8 str r4, [sp, 0x10] ldr r0, [sp] adds r0, 0x14 mov r9, r0 mov r1, r9 str r1, [sp, 0x20] cmp r8, r4 bcs _080B5C5E _080B5BB0: mov r2, r8 ldm r2!, {r6} str r2, [sp, 0x14] ldr r0, _080B5C6C ands r6, r0 mov r4, r9 adds r4, 0x4 str r4, [sp, 0x1C] cmp r6, 0 beq _080B5C08 ldr r7, [sp, 0x8] mov r5, r9 movs r1, 0 mov r12, r1 mov r10, r0 _080B5BCE: ldm r7!, {r3} adds r0, r3, 0 mov r2, r10 ands r0, r2 adds r1, r0, 0 muls r1, r6 ldr r2, [r5] adds r0, r2, 0 mov r4, r10 ands r0, r4 adds r1, r0 mov r0, r12 adds r4, r1, r0 lsrs r1, r4, 16 lsrs r3, 16 adds r0, r3, 0 muls r0, r6 lsrs r2, 16 adds r0, r2 adds r2, r0, r1 lsrs r0, r2, 16 mov r12, r0 strh r2, [r5] strh r4, [r5, 0x2] adds r5, 0x4 ldr r1, [sp, 0xC] cmp r7, r1 bcc _080B5BCE str r0, [r5] _080B5C08: mov r2, r8 ldrh r6, [r2, 0x2] cmp r6, 0 beq _080B5C50 ldr r7, [sp, 0x8] mov r5, r9 movs r4, 0 mov r12, r4 ldr r2, [r5] ldr r3, _080B5C6C _080B5C1C: ldm r7!, {r1} adds r0, r1, 0 ands r0, r3 muls r0, r6 ldrh r4, [r5, 0x2] adds r4, r0 mov r8, r4 add r4, r12 lsrs r0, r4, 16 mov r12, r0 strh r4, [r5] strh r2, [r5, 0x2] adds r5, 0x4 lsrs r1, 16 muls r1, r6 ldr r0, [r5] ands r0, r3 adds r1, r0 mov r4, r12 adds r2, r1, r4 lsrs r0, r2, 16 mov r12, r0 ldr r1, [sp, 0xC] cmp r7, r1 bcc _080B5C1C str r2, [r5] _080B5C50: ldr r2, [sp, 0x14] mov r8, r2 ldr r4, [sp, 0x1C] mov r9, r4 ldr r5, [sp, 0x10] cmp r8, r5 bcc _080B5BB0 _080B5C5E: ldr r0, [sp, 0x20] ldr r1, [sp, 0x18] adds r5, r0, r1 ldr r2, [sp, 0x4] cmp r2, 0 ble _080B5C82 b _080B5C7A .align 2, 0 _080B5C6C: .4byte 0x0000ffff _080B5C70: ldr r4, [sp, 0x4] subs r4, 0x1 str r4, [sp, 0x4] cmp r4, 0 ble _080B5C82 _080B5C7A: subs r5, 0x4 ldr r0, [r5] cmp r0, 0 beq _080B5C70 _080B5C82: ldr r5, [sp, 0x4] ldr r0, [sp] str r5, [r0, 0x10] ldr r0, [sp] add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7,pc} thumb_func_end sub_80B5B2C thumb_func_start sub_80B5C98 sub_80B5C98: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r7, r1, 0 adds r6, r2, 0 movs r1, 0x3 ands r1, r6 cmp r1, 0 beq _080B5CC2 ldr r0, _080B5CE4 subs r1, 0x1 lsls r1, 2 adds r1, r0 ldr r2, [r1] mov r0, r8 adds r1, r7, 0 movs r3, 0 bl sub_80B5920 adds r7, r0, 0 _080B5CC2: asrs r6, 2 cmp r6, 0 beq _080B5D28 mov r0, r8 ldr r5, [r0, 0x48] adds r4, r5, 0 cmp r5, 0 bne _080B5D04 ldr r1, _080B5CE8 bl sub_80B5B18 mov r1, r8 str r0, [r1, 0x48] adds r5, r0, 0 str r4, [r5] b _080B5D04 .align 2, 0 _080B5CE4: .4byte gUnknown_826FEB4 _080B5CE8: .4byte 0x00000271 _080B5CEC: ldr r0, [r5] adds r4, r0, 0 cmp r0, 0 bne _080B5D02 mov r0, r8 adds r1, r5, 0 adds r2, r5, 0 bl sub_80B5B2C str r0, [r5] str r4, [r0] _080B5D02: adds r5, r0, 0 _080B5D04: movs r0, 0x1 ands r0, r6 cmp r0, 0 beq _080B5D22 mov r0, r8 adds r1, r7, 0 adds r2, r5, 0 bl sub_80B5B2C adds r4, r0, 0 mov r0, r8 adds r1, r7, 0 bl sub_80B5908 adds r7, r4, 0 _080B5D22: asrs r6, 1 cmp r6, 0 bne _080B5CEC _080B5D28: adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7,pc} thumb_func_end sub_80B5C98 thumb_func_start sub_80B5D30 sub_80B5D30: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r0 mov r8, r1 adds r5, r2, 0 asrs r6, r5, 5 ldr r1, [r1, 0x4] mov r2, r8 ldr r0, [r2, 0x10] adds r0, r6, r0 adds r7, r0, 0x1 ldr r2, [r2, 0x8] cmp r7, r2 ble _080B5D5A _080B5D52: adds r1, 0x1 lsls r2, 1 cmp r7, r2 bgt _080B5D52 _080B5D5A: mov r0, r10 bl sub_80B58B0 mov r9, r0 mov r4, r9 adds r4, 0x14 mov r0, r8 adds r0, 0x14 cmp r6, 0 ble _080B5D7A movs r1, 0 adds r2, r6, 0 _080B5D72: stm r4!, {r1} subs r2, 0x1 cmp r2, 0 bne _080B5D72 _080B5D7A: adds r3, r0, 0 mov r1, r8 ldr r0, [r1, 0x10] lsls r0, 2 adds r6, r3, r0 movs r0, 0x1F ands r5, r0 cmp r5, 0 beq _080B5DAC movs r0, 0x20 subs r1, r0, r5 movs r2, 0 _080B5D92: ldr r0, [r3] lsls r0, r5 orrs r0, r2 stm r4!, {r0} ldm r3!, {r2} lsrs r2, r1 cmp r3, r6 bcc _080B5D92 str r2, [r4] cmp r2, 0 beq _080B5DB4 adds r7, 0x1 b _080B5DB4 _080B5DAC: ldm r3!, {r0} stm r4!, {r0} cmp r3, r6 bcc _080B5DAC _080B5DB4: subs r0, r7, 0x1 mov r2, r9 str r0, [r2, 0x10] mov r0, r10 mov r1, r8 bl sub_80B5908 mov r0, r9 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7,pc} thumb_func_end sub_80B5D30 thumb_func_start sub_80B5DD0 sub_80B5DD0: push {r4,r5,lr} adds r2, r0, 0 adds r5, r1, 0 ldr r0, [r2, 0x10] ldr r1, [r5, 0x10] subs r0, r1 cmp r0, 0 bne _080B5E0C adds r4, r2, 0 adds r4, 0x14 lsls r1, 2 adds r3, r4, r1 adds r0, r5, 0 adds r0, 0x14 adds r1, r0, r1 _080B5DEE: subs r3, 0x4 subs r1, 0x4 ldr r0, [r3] ldr r2, [r1] cmp r0, r2 beq _080B5E06 movs r1, 0x1 cmp r0, r2 bcs _080B5E02 subs r1, 0x2 _080B5E02: adds r0, r1, 0 b _080B5E0C _080B5E06: cmp r3, r4 bhi _080B5DEE movs r0, 0 _080B5E0C: pop {r4,r5,pc} thumb_func_end sub_80B5DD0 thumb_func_start sub_80B5E10 sub_80B5E10: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r6, r0, 0 adds r5, r1, 0 mov r8, r2 adds r0, r5, 0 mov r1, r8 bl sub_80B5DD0 adds r4, r0, 0 cmp r4, 0 bne _080B5E42 adds r0, r6, 0 movs r1, 0 bl sub_80B58B0 adds r7, r0, 0 movs r0, 0x1 str r0, [r7, 0x10] str r4, [r7, 0x14] b _080B5EF2 _080B5E42: cmp r4, 0 bge _080B5E50 adds r7, r5, 0 mov r5, r8 mov r8, r7 movs r4, 0x1 b _080B5E52 _080B5E50: movs r4, 0 _080B5E52: ldr r1, [r5, 0x4] adds r0, r6, 0 bl sub_80B58B0 adds r7, r0, 0 str r4, [r7, 0xC] ldr r0, [r5, 0x10] mov r9, r0 adds r6, r5, 0 adds r6, 0x14 lsls r0, 2 adds r0, r6 mov r10, r0 mov r1, r8 ldr r0, [r1, 0x10] movs r3, 0x14 add r3, r8 mov r12, r3 lsls r0, 2 add r0, r12 str r0, [sp] adds r4, r7, 0 adds r4, 0x14 movs r5, 0 ldr r0, _080B5EDC mov r8, r0 _080B5E86: ldm r6!, {r1} str r1, [sp, 0x4] mov r3, r8 ands r1, r3 mov r0, r12 adds r0, 0x4 mov r12, r0 subs r0, 0x4 ldm r0!, {r2} adds r0, r2, 0 ands r0, r3 subs r1, r0 adds r0, r1, r5 asrs r5, r0, 16 ldr r1, [sp, 0x4] lsrs r3, r1, 16 lsrs r2, 16 subs r3, r2 adds r1, r3, r5 asrs r5, r1, 16 strh r1, [r4] strh r0, [r4, 0x2] adds r4, 0x4 ldr r3, [sp] cmp r12, r3 bcc _080B5E86 cmp r6, r10 bcs _080B5EE6 ldr r2, _080B5EDC _080B5EC0: ldm r6!, {r1} adds r0, r1, 0 ands r0, r2 adds r0, r5 asrs r5, r0, 16 lsrs r1, 16 adds r1, r5 asrs r5, r1, 16 strh r1, [r4] strh r0, [r4, 0x2] adds r4, 0x4 cmp r6, r10 bcc _080B5EC0 b _080B5EE6 .align 2, 0 _080B5EDC: .4byte 0x0000ffff _080B5EE0: movs r0, 0x1 negs r0, r0 add r9, r0 _080B5EE6: subs r4, 0x4 ldr r0, [r4] cmp r0, 0 beq _080B5EE0 mov r1, r9 str r1, [r7, 0x10] _080B5EF2: adds r0, r7, 0 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7,pc} thumb_func_end sub_80B5E10 thumb_func_start sub_80B5F00 sub_80B5F00: push {r4,lr} ldr r2, _080B5F14 ands r2, r0 ldr r0, _080B5F18 adds r2, r0 cmp r2, 0 ble _080B5F1C adds r3, r2, 0 movs r4, 0 b _080B5F46 .align 2, 0 _080B5F14: .4byte 0x7ff00000 _080B5F18: .4byte 0xfcc00000 _080B5F1C: negs r0, r2 asrs r2, r0, 20 cmp r2, 0x13 bgt _080B5F30 movs r0, 0x80 lsls r0, 12 adds r3, r0, 0 asrs r3, r2 movs r4, 0 b _080B5F46 _080B5F30: movs r3, 0 subs r2, 0x14 cmp r2, 0x1E bgt _080B5F42 movs r0, 0x1F subs r0, r2 movs r1, 0x1 lsls r1, r0 b _080B5F44 _080B5F42: movs r1, 0x1 _080B5F44: adds r4, r1, 0 _080B5F46: adds r1, r4, 0 adds r0, r3, 0 pop {r4,pc} thumb_func_end sub_80B5F00 thumb_func_start sub_80B5F4C sub_80B5F4C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r1, 0 movs r1, 0x14 adds r1, r0 mov r8, r1 ldr r0, [r0, 0x10] lsls r0, 2 adds r5, r1, r0 subs r5, 0x4 ldr r2, [r5] adds r0, r2, 0 str r2, [sp] bl sub_80B5A3C adds r3, r0, 0 movs r0, 0x20 subs r0, r3 str r0, [r4] ldr r2, [sp] cmp r3, 0xA bgt _080B5FAC movs r0, 0xB subs r0, r3 adds r1, r2, 0 lsrs r1, r0 ldr r0, _080B5F94 adds r6, r1, 0 orrs r6, r0 cmp r5, r8 bls _080B5F98 subs r5, 0x4 ldr r1, [r5] b _080B5F9A .align 2, 0 _080B5F94: .4byte 0x3ff00000 _080B5F98: movs r1, 0 _080B5F9A: adds r0, r3, 0 adds r0, 0x15 lsls r2, r0 movs r0, 0xB subs r0, r3 lsrs r1, r0 adds r7, r2, 0 orrs r7, r1 b _080B5FF8 _080B5FAC: cmp r5, r8 bls _080B5FB6 subs r5, 0x4 ldr r4, [r5] b _080B5FB8 _080B5FB6: movs r4, 0 _080B5FB8: subs r3, 0xB cmp r3, 0 beq _080B5FF0 lsls r2, r3 movs r0, 0x20 subs r0, r3 adds r1, r4, 0 lsrs r1, r0 ldr r0, _080B5FDC orrs r1, r0 adds r6, r2, 0 orrs r6, r1 cmp r5, r8 bls _080B5FE0 subs r5, 0x4 ldr r2, [r5] b _080B5FE2 .align 2, 0 _080B5FDC: .4byte 0x3ff00000 _080B5FE0: movs r2, 0 _080B5FE2: lsls r4, r3 movs r0, 0x20 subs r0, r3 lsrs r2, r0 adds r7, r4, 0 orrs r7, r2 b _080B5FF8 _080B5FF0: ldr r0, _080B6004 adds r6, r2, 0 orrs r6, r0 adds r7, r4, 0 _080B5FF8: adds r1, r7, 0 adds r0, r6, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7,pc} .align 2, 0 _080B6004: .4byte 0x3ff00000 thumb_func_end sub_80B5F4C thumb_func_start sub_80B6008 sub_80B6008: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r3 ldr r3, [sp, 0x28] mov r10, r3 adds r5, r2, 0 adds r4, r1, 0 movs r1, 0x1 bl sub_80B58B0 adds r6, r0, 0 movs r0, 0x14 adds r0, r6 mov r8, r0 ldr r2, _080B6070 adds r1, r4, 0 ands r2, r1 str r2, [sp, 0x4] ldr r0, _080B6074 ands r4, r0 lsrs r7, r4, 20 cmp r7, 0 beq _080B6046 movs r0, 0x80 lsls r0, 13 orrs r0, r2 str r0, [sp, 0x4] _080B6046: str r5, [sp] cmp r5, 0 beq _080B6090 mov r0, sp bl sub_80B5A94 adds r2, r0, 0 cmp r2, 0 beq _080B6078 movs r0, 0x20 subs r0, r2 ldr r1, [sp, 0x4] lsls r1, r0 ldr r0, [sp] orrs r0, r1 str r0, [r6, 0x14] ldr r0, [sp, 0x4] lsrs r0, r2 str r0, [sp, 0x4] b _080B607C .align 2, 0 _080B6070: .4byte 0x000fffff _080B6074: .4byte 0x7fffffff _080B6078: ldr r0, [sp] str r0, [r6, 0x14] _080B607C: ldr r0, [sp, 0x4] mov r1, r8 str r0, [r1, 0x4] movs r1, 0x1 cmp r0, 0 beq _080B608A movs r1, 0x2 _080B608A: str r1, [r6, 0x10] adds r4, r1, 0 b _080B60A4 _080B6090: add r0, sp, 0x4 bl sub_80B5A94 adds r2, r0, 0 ldr r0, [sp, 0x4] str r0, [r6, 0x14] movs r0, 0x1 str r0, [r6, 0x10] movs r4, 0x1 adds r2, 0x20 _080B60A4: cmp r7, 0 beq _080B60C0 ldr r3, _080B60BC adds r0, r2, r3 adds r0, r7, r0 mov r1, r9 str r0, [r1] movs r0, 0x35 subs r0, r2 mov r3, r10 str r0, [r3] b _080B60DC .align 2, 0 _080B60BC: .4byte 0xfffffbcd _080B60C0: ldr r1, _080B60EC adds r0, r2, r1 mov r3, r9 str r0, [r3] lsls r0, r4, 2 add r0, r8 subs r0, 0x4 ldr r0, [r0] bl sub_80B5A3C lsls r1, r4, 5 subs r1, r0 mov r0, r10 str r1, [r0] _080B60DC: adds r0, r6, 0 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7,pc} .align 2, 0 _080B60EC: .4byte 0xfffffbce thumb_func_end sub_80B6008 thumb_func_start sub_80B60F0 sub_80B60F0: push {r4-r7,lr} sub sp, 0x10 adds r4, r0, 0 adds r5, r1, 0 mov r1, sp bl sub_80B5F4C str r0, [sp, 0x8] str r1, [sp, 0xC] add r1, sp, 0x4 adds r0, r5, 0 bl sub_80B5F4C adds r7, r1, 0 adds r6, r0, 0 ldr r2, [sp] ldr r0, [sp, 0x4] subs r2, r0 ldr r0, [r4, 0x10] ldr r1, [r5, 0x10] subs r0, r1 lsls r0, 5 adds r0, r2, r0 cmp r0, 0 ble _080B612C lsls r0, 20 ldr r1, [sp, 0x8] adds r0, r1, r0 str r0, [sp, 0x8] b _080B6130 _080B612C: lsls r0, 20 subs r6, r0 _080B6130: ldr r0, [sp, 0x8] ldr r1, [sp, 0xC] adds r3, r7, 0 adds r2, r6, 0 bl __divdf3 add sp, 0x10 pop {r4-r7,pc} thumb_func_end sub_80B60F0 thumb_func_start sub_80B6140 sub_80B6140: push {r4,lr} adds r4, r0, 0 ldr r1, _080B615C ldr r0, _080B6158 cmp r4, 0x17 bgt _080B6164 ldr r0, _080B6160 lsls r1, r4, 3 adds r1, r0 ldr r0, [r1] ldr r1, [r1, 0x4] b _080B6176 .align 2, 0 _080B6158: .4byte 0x3ff00000 _080B615C: .4byte 0x00000000 _080B6160: .4byte gUnknown_826FEC0 _080B6164: cmp r4, 0 ble _080B6176 _080B6168: ldr r3, _080B617C ldr r2, _080B6178 bl __muldf3 subs r4, 0x1 cmp r4, 0 bgt _080B6168 _080B6176: pop {r4,pc} .align 2, 0 _080B6178: .4byte 0x40240000 _080B617C: .4byte 0x00000000 thumb_func_end sub_80B6140 thumb_func_start sub_80B6180 sub_80B6180: ldr r3, _080B619C ands r3, r0 negs r2, r1 orrs r2, r1 lsrs r2, 31 orrs r3, r2 ldr r0, _080B61A0 subs r3, r0, r3 negs r0, r3 orrs r3, r0 lsrs r3, 31 movs r0, 0x1 subs r0, r3 bx lr .align 2, 0 _080B619C: .4byte 0x7fffffff _080B61A0: .4byte 0x7ff00000 thumb_func_end sub_80B6180 thumb_func_start sub_80B61A4 sub_80B61A4: ldr r3, _080B61BC ands r3, r0 negs r2, r1 orrs r2, r1 lsrs r2, 31 orrs r3, r2 ldr r0, _080B61C0 subs r3, r0, r3 lsrs r3, 31 adds r0, r3, 0 bx lr .align 2, 0 _080B61BC: .4byte 0x7fffffff _080B61C0: .4byte 0x7ff00000 thumb_func_end sub_80B61A4 thumb_func_start _sbrk_r _sbrk_r: push {r4,r5,lr} adds r5, r0, 0 adds r0, r1, 0 ldr r4, _080B61EC movs r1, 0 str r1, [r4] bl _sbrk adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080B61E6 ldr r0, [r4] cmp r0, 0 beq _080B61E6 str r0, [r5] _080B61E6: adds r0, r1, 0 pop {r4,r5,pc} .align 2, 0 _080B61EC: .4byte gUnknown_203B034 thumb_func_end _sbrk_r thumb_func_start sub_80B61F0 sub_80B61F0: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r3, r2, 0 ldr r0, [r5, 0x54] movs r2, 0xE ldrsh r1, [r5, r2] adds r2, r4, 0 bl sub_80B685C adds r1, r0, 0 cmp r1, 0 blt _080B6212 ldr r0, [r5, 0x50] adds r0, r1 str r0, [r5, 0x50] b _080B621A _080B6212: ldr r0, _080B6220 ldrh r2, [r5, 0xC] ands r0, r2 strh r0, [r5, 0xC] _080B621A: adds r0, r1, 0 pop {r4,r5,pc} .align 2, 0 _080B6220: .4byte 0xffffefff thumb_func_end sub_80B61F0 thumb_func_start sub_80B6224 sub_80B6224: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 movs r0, 0x80 lsls r0, 1 ldrh r1, [r4, 0xC] ands r0, r1 cmp r0, 0 beq _080B6246 ldr r0, [r4, 0x54] movs r2, 0xE ldrsh r1, [r4, r2] movs r2, 0 movs r3, 0x2 bl sub_80B682C _080B6246: ldr r0, _080B6260 ldrh r1, [r4, 0xC] ands r0, r1 strh r0, [r4, 0xC] ldr r0, [r4, 0x54] movs r2, 0xE ldrsh r1, [r4, r2] adds r2, r5, 0 adds r3, r6, 0 bl sub_80B6718 pop {r4-r6,pc} .align 2, 0 _080B6260: .4byte 0xffffefff thumb_func_end sub_80B6224 thumb_func_start sub_80B6264 sub_80B6264: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r3, r2, 0 ldr r0, [r5, 0x54] movs r2, 0xE ldrsh r1, [r5, r2] adds r2, r4, 0 bl sub_80B682C adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080B6290 ldr r0, _080B628C ldrh r2, [r5, 0xC] ands r0, r2 strh r0, [r5, 0xC] b _080B629E .align 2, 0 _080B628C: .4byte 0xffffefff _080B6290: movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 ldrh r2, [r5, 0xC] orrs r0, r2 strh r0, [r5, 0xC] str r1, [r5, 0x50] _080B629E: adds r0, r1, 0 pop {r4,r5,pc} thumb_func_end sub_80B6264 thumb_func_start sub_80B62A4 sub_80B62A4: push {lr} ldr r2, [r0, 0x54] movs r3, 0xE ldrsh r1, [r0, r3] adds r0, r2, 0 bl sub_80B67A0 pop {pc} thumb_func_end sub_80B62A4 thumb_func_start findslot findslot: adds r3, r0, 0 movs r1, 0 ldr r2, _080B62BC b _080B62C8 .align 2, 0 _080B62BC: .4byte gUnknown_2039E28 _080B62C0: adds r2, 0x8 adds r1, 0x1 cmp r1, 0x13 bgt _080B62CE _080B62C8: ldr r0, [r2] cmp r0, r3 bne _080B62C0 _080B62CE: adds r0, r1, 0 bx lr thumb_func_end findslot thumb_func_start sub_80B62D4 sub_80B62D4: adds r2, r0, 0 ldr r0, _080B62E8 ldr r1, [r0] ldr r0, [r1, 0x4] movs r3, 0xE ldrsh r0, [r0, r3] cmp r2, r0 bne _080B62F0 ldr r0, _080B62EC b _080B6316 .align 2, 0 _080B62E8: .4byte gUnknown_203B7A8 _080B62EC: .4byte gUnknown_2039E1C _080B62F0: ldr r0, [r1, 0x8] movs r3, 0xE ldrsh r0, [r0, r3] cmp r2, r0 bne _080B6304 ldr r0, _080B6300 b _080B6316 .align 2, 0 _080B6300: .4byte gUnknown_2039E20 _080B6304: ldr r0, [r1, 0xC] movs r1, 0xE ldrsh r0, [r0, r1] cmp r2, r0 beq _080B6314 adds r0, r2, 0 subs r0, 0x20 b _080B6318 _080B6314: ldr r0, _080B631C _080B6316: ldr r0, [r0] _080B6318: bx lr .align 2, 0 _080B631C: .4byte gUnknown_2039E24 thumb_func_end sub_80B62D4 thumb_func_start sub_80B6320 sub_80B6320: push {r4,r5,lr} sub sp, 0xC ldr r4, _080B637C str r4, [sp] movs r3, 0x3 str r3, [sp, 0x8] movs r0, 0 str r0, [sp, 0x4] movs r5, 0x1 adds r0, r5, 0 mov r1, sp swi 0xAB adds r2, r0, 0 ldr r5, _080B6380 str r2, [r5] str r4, [sp] str r3, [sp, 0x8] movs r0, 0x4 str r0, [sp, 0x4] ldr r3, _080B6384 movs r4, 0x1 adds r0, r4, 0 mov r1, sp swi 0xAB adds r2, r0, 0 ldr r0, _080B6388 str r2, [r0] str r2, [r3] ldr r2, _080B638C adds r1, r2, 0 subs r4, 0x2 adds r0, r2, 0 adds r0, 0x98 _080B6362: str r4, [r0] subs r0, 0x8 cmp r0, r1 bge _080B6362 movs r0, 0 ldr r1, [r5] str r1, [r2] str r0, [r2, 0x4] ldr r1, [r3] str r1, [r2, 0x8] str r0, [r2, 0xC] add sp, 0xC pop {r4,r5,pc} .align 2, 0 _080B637C: .4byte gUnknown_826FFD8 _080B6380: .4byte gUnknown_2039E1C _080B6384: .4byte gUnknown_2039E20 _080B6388: .4byte gUnknown_2039E24 _080B638C: .4byte gUnknown_2039E28 thumb_func_end sub_80B6320 thumb_func_start sub_80B6390 sub_80B6390: push {r4,lr} movs r3, 0x13 movs r4, 0 adds r0, r3, 0 adds r1, r4, 0 swi 0xAB adds r2, r0, 0 adds r0, r2, 0 pop {r4,pc} thumb_func_end sub_80B6390 thumb_func_start sub_80B63A4 sub_80B63A4: push {r4,r5,lr} adds r5, r0, 0 bl sub_80B67CC adds r4, r0, 0 bl sub_80B6390 str r0, [r4] adds r0, r5, 0 pop {r4,r5,pc} thumb_func_end sub_80B63A4 thumb_func_start sub_80B63B8 sub_80B63B8: push {lr} adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080B63C8 adds r0, r1, 0 b _080B63CE _080B63C8: adds r0, r1, 0 bl sub_80B63A4 _080B63CE: pop {pc} thumb_func_end sub_80B63B8 thumb_func_start sub_80B63D0 sub_80B63D0: push {r4,r5,lr} sub sp, 0xC adds r4, r1, 0 adds r5, r2, 0 bl sub_80B62D4 str r0, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r3, 0x6 adds r0, r3, 0 mov r1, sp swi 0xAB adds r2, r0, 0 adds r0, r2, 0 add sp, 0xC pop {r4,r5,pc} thumb_func_end sub_80B63D0 thumb_func_start sub_80B63F4 sub_80B63F4: push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 adds r7, r2, 0 bl sub_80B62D4 bl findslot adds r6, r0, 0 adds r0, r4, 0 adds r1, r5, 0 adds r2, r7, 0 bl sub_80B63D0 cmp r0, 0 bge _080B641E movs r0, 0x1 negs r0, r0 bl sub_80B63A4 b _080B6434 _080B641E: subs r2, r7, r0 cmp r6, 0x14 beq _080B6432 ldr r0, _080B6438 lsls r1, r6, 3 adds r0, 0x4 adds r1, r0 ldr r0, [r1] adds r0, r2 str r0, [r1] _080B6432: adds r0, r2, 0 _080B6434: pop {r4-r7,pc} .align 2, 0 _080B6438: .4byte gUnknown_2039E28 thumb_func_end sub_80B63F4 thumb_func_start sub_80B643C sub_80B643C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 mov r8, r0 adds r5, r1, 0 adds r4, r2, 0 bl sub_80B62D4 adds r7, r0, 0 bl findslot adds r6, r0, 0 cmp r4, 0x1 bne _080B6472 cmp r6, 0x14 bne _080B6464 movs r0, 0x1 negs r0, r0 b _080B64B4 _080B6464: ldr r0, _080B64BC lsls r1, r6, 3 adds r0, 0x4 adds r1, r0 ldr r0, [r1] adds r5, r0 movs r4, 0 _080B6472: cmp r4, 0x2 bne _080B6484 str r7, [sp] movs r3, 0xC adds r0, r3, 0 mov r1, sp swi 0xAB adds r2, r0, 0 adds r5, r2 _080B6484: mov r0, r8 bl sub_80B62D4 str r0, [sp] str r5, [sp, 0x4] movs r3, 0xA adds r0, r3, 0 mov r1, sp swi 0xAB adds r2, r0, 0 cmp r6, 0x14 beq _080B64AA cmp r2, 0 bne _080B64AA ldr r0, _080B64BC lsls r1, r6, 3 adds r0, 0x4 adds r1, r0 str r5, [r1] _080B64AA: movs r0, 0x1 negs r0, r0 cmp r2, 0 bne _080B64B4 adds r0, r5, 0 _080B64B4: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7,pc} .align 2, 0 _080B64BC: .4byte gUnknown_2039E28 thumb_func_end sub_80B643C thumb_func_start sub_80B64C0 sub_80B64C0: push {lr} bl sub_80B643C bl sub_80B63B8 pop {pc} thumb_func_end sub_80B64C0 thumb_func_start sub_80B64CC sub_80B64CC: push {r4,r5,lr} sub sp, 0xC adds r4, r1, 0 adds r5, r2, 0 bl sub_80B62D4 str r0, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r3, 0x5 adds r0, r3, 0 mov r1, sp swi 0xAB adds r2, r0, 0 adds r0, r2, 0 add sp, 0xC pop {r4,r5,pc} thumb_func_end sub_80B64CC thumb_func_start _write _write: push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 bl sub_80B62D4 bl findslot adds r7, r0, 0 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_80B64CC movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080B6518 cmp r0, r6 bne _080B6520 _080B6518: adds r0, r1, 0 bl sub_80B63A4 b _080B6536 _080B6520: subs r2, r6, r0 cmp r7, 0x14 beq _080B6534 ldr r0, _080B6538 lsls r1, r7, 3 adds r0, 0x4 adds r1, r0 ldr r0, [r1] adds r0, r2 str r0, [r1] _080B6534: adds r0, r2, 0 _080B6536: pop {r4-r7,pc} .align 2, 0 _080B6538: .4byte gUnknown_2039E28 thumb_func_end _write thumb_func_start _swiopen _swiopen: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r7, r0, 0 adds r4, r1, 0 movs r5, 0 movs r6, 0x1 negs r6, r6 adds r0, r6, 0 bl findslot mov r8, r0 cmp r0, 0x14 bne _080B655E adds r0, r6, 0 b _080B65D2 _080B655E: movs r0, 0x2 ands r0, r4 cmp r0, 0 beq _080B6568 movs r5, 0x2 _080B6568: movs r0, 0x80 lsls r0, 2 ands r0, r4 cmp r0, 0 beq _080B6576 movs r0, 0x4 orrs r5, r0 _080B6576: movs r0, 0x80 lsls r0, 3 ands r0, r4 cmp r0, 0 beq _080B6584 movs r0, 0x4 orrs r5, r0 _080B6584: movs r1, 0x8 ands r4, r1 cmp r4, 0 beq _080B6594 movs r0, 0x5 negs r0, r0 ands r5, r0 orrs r5, r1 _080B6594: str r7, [sp] adds r0, r7, 0 bl strlen str r0, [sp, 0x8] str r5, [sp, 0x4] movs r2, 0x1 adds r0, r2, 0 mov r1, sp swi 0xAB adds r3, r0, 0 cmp r3, 0 blt _080B65CC ldr r0, _080B65C8 mov r1, r8 lsls r2, r1, 3 adds r1, r2, r0 str r3, [r1] adds r0, 0x4 adds r2, r0 movs r0, 0 str r0, [r2] adds r0, r3, 0 adds r0, 0x20 b _080B65D2 .align 2, 0 _080B65C8: .4byte gUnknown_2039E28 _080B65CC: adds r0, r3, 0 bl sub_80B63A4 _080B65D2: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7,pc} thumb_func_end _swiopen thumb_func_start sub_80B65DC sub_80B65DC: push {r1-r3} push {lr} ldr r1, [sp, 0x4] bl _swiopen bl sub_80B63B8 pop {r3} add sp, 0xC bx r3 thumb_func_end sub_80B65DC thumb_func_start sub_80B65F0 sub_80B65F0: push {lr} sub sp, 0x4 bl sub_80B62D4 str r0, [sp] bl findslot adds r1, r0, 0 cmp r1, 0x14 beq _080B6610 ldr r0, _080B6620 lsls r1, 3 adds r1, r0 movs r0, 0x1 negs r0, r0 str r0, [r1] _080B6610: movs r3, 0x2 adds r0, r3, 0 mov r1, sp swi 0xAB adds r2, r0, 0 adds r0, r2, 0 add sp, 0x4 pop {pc} .align 2, 0 _080B6620: .4byte gUnknown_2039E28 thumb_func_end sub_80B65F0 thumb_func_start sub_80B6624 sub_80B6624: push {lr} bl sub_80B65F0 bl sub_80B63B8 pop {pc} thumb_func_end sub_80B6624 thumb_func_start sub_80B6630 sub_80B6630: mov r12, r3 mov r3, r8 push {r3} mov r3, r12 movs r2, 0x18 ldr r3, _080B664C adds r0, r2, 0 adds r1, r3, 0 swi 0xAB mov r8, r0 pop {r3} mov r8, r3 bx lr .align 2, 0 _080B664C: .4byte 0x00020026 thumb_func_end sub_80B6630 thumb_func_start sub_80B6650 sub_80B6650: mov r12, r3 mov r3, r8 push {r3} mov r3, r12 movs r2, 0x18 ldr r3, _080B666C adds r0, r2, 0 adds r1, r3, 0 swi 0xAB mov r8, r0 pop {r3} mov r8, r3 bx lr .align 2, 0 _080B666C: .4byte 0x00020026 thumb_func_end sub_80B6650 thumb_func_start sub_80B6670 sub_80B6670: movs r0, 0x1 bx lr thumb_func_end sub_80B6670 thumb_func_start _sbrk _sbrk: push {r4-r6,lr} adds r6, r0, 0 ldr r4, _080B66A4 ldr r0, [r4] cmp r0, 0 bne _080B6684 ldr r0, _080B66A8 str r0, [r4] _080B6684: ldr r5, [r4] adds r0, r5, r6 cmp r0, sp bls _080B669A ldr r1, _080B66AC movs r0, 0x1 movs r2, 0x20 bl _write bl abort _080B669A: ldr r0, [r4] adds r0, r6 str r0, [r4] adds r0, r5, 0 pop {r4-r6,pc} .align 2, 0 _080B66A4: .4byte gUnknown_2039E18 _080B66A8: .4byte end _080B66AC: .4byte gUnknown_826FFDC thumb_func_end _sbrk thumb_func_start sub_80B66B0 sub_80B66B0: movs r0, 0x80 lsls r0, 6 str r0, [r1, 0x4] movs r0, 0 bx lr thumb_func_end sub_80B66B0 thumb_func_start sub_80B66BC sub_80B66BC: movs r0, 0x1 negs r0, r0 bx lr thumb_func_end sub_80B66BC thumb_func_start nullsub_213 nullsub_213: bx lr thumb_func_end nullsub_213 thumb_func_start sub_80B66C8 sub_80B66C8: push {r4,r5,lr} adds r2, r0, 0 adds r3, r1, 0 cmp r2, 0 beq _080B66E6 movs r4, 0x11 movs r5, 0 adds r0, r4, 0 adds r1, r5, 0 swi 0xAB adds r5, r0, 0 adds r4, r5, 0 str r4, [r2] movs r0, 0 str r0, [r2, 0x4] _080B66E6: cmp r3, 0 beq _080B66F0 movs r0, 0 str r0, [r3] str r0, [r3, 0x4] _080B66F0: movs r0, 0 pop {r4,r5,pc} thumb_func_end sub_80B66C8 thumb_func_start sub_80B66F4 sub_80B66F4: push {r4,r5,lr} adds r2, r0, 0 movs r4, 0x10 movs r5, 0 adds r0, r4, 0 adds r1, r5, 0 swi 0xAB adds r3, r0, 0 cmp r2, 0 beq _080B6712 str r3, [r2] movs r0, 0 str r0, [r2, 0x4] str r0, [r2, 0x8] str r0, [r2, 0xC] _080B6712: adds r0, r3, 0 pop {r4,r5,pc} thumb_func_end sub_80B66F4 thumb_func_start sub_80B6718 sub_80B6718: push {r4,r5,lr} adds r5, r0, 0 adds r0, r1, 0 adds r1, r2, 0 adds r2, r3, 0 ldr r4, _080B6744 movs r3, 0 str r3, [r4] bl _write adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080B673E ldr r0, [r4] cmp r0, 0 beq _080B673E str r0, [r5] _080B673E: adds r0, r1, 0 pop {r4,r5,pc} .align 2, 0 _080B6744: .4byte gUnknown_203B034 thumb_func_end sub_80B6718 thumb_func_start sub_80B6748 sub_80B6748: push {r4,lr} muls r1, r2 bl sub_80B53B4 adds r4, r0, 0 cmp r4, 0 bne _080B675A movs r0, 0 b _080B679E _080B675A: adds r0, r4, 0 subs r0, 0x8 ldr r0, [r0, 0x4] movs r1, 0x4 negs r1, r1 ands r0, r1 subs r2, r0, 0x4 cmp r2, 0x24 bhi _080B6794 adds r1, r4, 0 cmp r2, 0x13 bls _080B678A movs r0, 0 stm r1!, {r0} str r0, [r4, 0x4] adds r1, 0x4 cmp r2, 0x1B bls _080B678A stm r1!, {r0} stm r1!, {r0} cmp r2, 0x23 bls _080B678A stm r1!, {r0} stm r1!, {r0} _080B678A: movs r0, 0 stm r1!, {r0} stm r1!, {r0} str r0, [r1] b _080B679C _080B6794: adds r0, r4, 0 movs r1, 0 bl memset _080B679C: adds r0, r4, 0 _080B679E: pop {r4,pc} thumb_func_end sub_80B6748 thumb_func_start sub_80B67A0 sub_80B67A0: push {r4,r5,lr} adds r5, r0, 0 adds r0, r1, 0 ldr r4, _080B67C8 movs r1, 0 str r1, [r4] bl sub_80B6624 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080B67C2 ldr r0, [r4] cmp r0, 0 beq _080B67C2 str r0, [r5] _080B67C2: adds r0, r1, 0 pop {r4,r5,pc} .align 2, 0 _080B67C8: .4byte gUnknown_203B034 thumb_func_end sub_80B67A0 thumb_func_start sub_80B67CC sub_80B67CC: ldr r0, _080B67D4 ldr r0, [r0] bx lr .align 2, 0 _080B67D4: .4byte gUnknown_203B7A8 thumb_func_end sub_80B67CC thumb_func_start sub_80B67D8 sub_80B67D8: push {r4,r5,lr} adds r5, r0, 0 adds r0, r1, 0 adds r1, r2, 0 ldr r4, _080B6800 movs r2, 0 str r2, [r4] bl sub_80B66B0 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080B67FC ldr r0, [r4] cmp r0, 0 beq _080B67FC str r0, [r5] _080B67FC: adds r0, r1, 0 pop {r4,r5,pc} .align 2, 0 _080B6800: .4byte gUnknown_203B034 thumb_func_end sub_80B67D8 thumb_func_start abort abort: mov r12, r3 mov r3, r8 push {r3} mov r3, r12 movs r2, 0x18 ldr r3, _080B6820 adds r0, r2, 0 adds r1, r3, 0 swi 0xAB mov r8, r0 pop {r3} mov r8, r3 bx lr .align 2, 0 _080B6820: .4byte 0x00020022 thumb_func_end abort thumb_func_start isatty isatty: movs r0, 0x1 bx lr thumb_func_end isatty thumb_func_start alarm alarm: bx lr thumb_func_end alarm thumb_func_start sub_80B682C sub_80B682C: push {r4,r5,lr} adds r5, r0, 0 adds r0, r1, 0 adds r1, r2, 0 adds r2, r3, 0 ldr r4, _080B6858 movs r3, 0 str r3, [r4] bl sub_80B64C0 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080B6852 ldr r0, [r4] cmp r0, 0 beq _080B6852 str r0, [r5] _080B6852: adds r0, r1, 0 pop {r4,r5,pc} .align 2, 0 _080B6858: .4byte gUnknown_203B034 thumb_func_end sub_80B682C thumb_func_start sub_80B685C sub_80B685C: push {r4,r5,lr} adds r5, r0, 0 adds r0, r1, 0 adds r1, r2, 0 adds r2, r3, 0 ldr r4, _080B6888 movs r3, 0 str r3, [r4] bl sub_80B63F4 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080B6882 ldr r0, [r4] cmp r0, 0 beq _080B6882 str r0, [r5] _080B6882: adds r0, r1, 0 pop {r4,r5,pc} .align 2, 0 _080B6888: .4byte gUnknown_203B034 thumb_func_end sub_80B685C thumb_func_start sub_80B688C sub_80B688C: cmp r1, 0 beq _080B68FA movs r3, 0x1 movs r2, 0 push {r4} cmp r0, r1 bcc _080B68F4 movs r4, 0x1 lsls r4, 28 _080B689E: cmp r1, r4 bcs _080B68AC cmp r1, r0 bcs _080B68AC lsls r1, 4 lsls r3, 4 b _080B689E _080B68AC: lsls r4, 3 _080B68AE: cmp r1, r4 bcs _080B68BC cmp r1, r0 bcs _080B68BC lsls r1, 1 lsls r3, 1 b _080B68AE _080B68BC: cmp r0, r1 bcc _080B68C4 subs r0, r1 orrs r2, r3 _080B68C4: lsrs r4, r1, 1 cmp r0, r4 bcc _080B68D0 subs r0, r4 lsrs r4, r3, 1 orrs r2, r4 _080B68D0: lsrs r4, r1, 2 cmp r0, r4 bcc _080B68DC subs r0, r4 lsrs r4, r3, 2 orrs r2, r4 _080B68DC: lsrs r4, r1, 3 cmp r0, r4 bcc _080B68E8 subs r0, r4 lsrs r4, r3, 3 orrs r2, r4 _080B68E8: cmp r0, 0 beq _080B68F4 lsrs r3, 4 beq _080B68F4 lsrs r1, 4 b _080B68BC _080B68F4: adds r0, r2, 0 pop {r4} mov pc, lr _080B68FA: push {lr} bl __div0 movs r0, 0 pop {pc} thumb_func_end sub_80B688C .align 2, 0 @ Don't pad with nop.