.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start sub_80951BC sub_80951BC: push {r4,lr} adds r4, r0, 0 bl sub_8095190 adds r2, r0, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _080951F4 ldr r0, _080951F0 ldr r1, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 4 adds r1, r0 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r0, 0x1 b _080951F6 .align 2, 0 _080951F0: .4byte gUnknown_203B480 _080951F4: movs r0, 0 _080951F6: pop {r4} pop {r1} bx r1 thumb_func_end sub_80951BC thumb_func_start sub_80951FC sub_80951FC: push {r4,r5,lr} ldr r1, _08095224 ldr r1, [r1] adds r1, 0x30 ldrb r2, [r1] negs r3, r2 orrs r3, r2 lsrs r3, 31 ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} adds r0, r3, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08095224: .4byte gUnknown_203B480 thumb_func_end sub_80951FC thumb_func_start sub_8095228 sub_8095228: lsls r0, 24 lsrs r0, 24 ldr r2, _0809523C lsls r1, r0, 1 adds r1, r0 lsls r1, 4 ldr r0, [r2] adds r0, r1 bx lr .align 2, 0 _0809523C: .4byte gUnknown_203B480 thumb_func_end sub_8095228 thumb_func_start sub_8095240 sub_8095240: push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _08095270 lsls r4, r0, 1 adds r4, r0 lsls r4, 4 ldr r0, [r5] adds r0, r4 movs r1, 0 movs r2, 0x30 bl MemoryFill8 ldr r0, [r5] adds r0, r4 movs r1, 0 strb r1, [r0] ldr r0, [r5] adds r0, r4 adds r0, 0x22 strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08095270: .4byte gUnknown_203B480 thumb_func_end sub_8095240 thumb_func_start sub_8095274 sub_8095274: push {lr} ldr r1, _08095294 ldr r3, [r1] adds r2, r3, 0 ldm r2!, {r1} lsls r1, 2 adds r2, r1 str r0, [r2] ldr r0, [r3] movs r1, 0 cmp r0, 0x1E bgt _0809528E adds r1, r0, 0x1 _0809528E: str r1, [r3] pop {r0} bx r0 .align 2, 0 _08095294: .4byte gUnknown_203B48C thumb_func_end sub_8095274 thumb_func_start sub_8095298 sub_8095298: push {lr} adds r3, r0, 0 movs r2, 0 ldr r0, _080952B0 ldr r0, [r0] adds r1, r0, 0x4 _080952A4: ldr r0, [r1] cmp r0, r3 bne _080952B4 movs r0, 0x1 b _080952BE .align 2, 0 _080952B0: .4byte gUnknown_203B48C _080952B4: adds r1, 0x4 adds r2, 0x1 cmp r2, 0x1F ble _080952A4 movs r0, 0 _080952BE: pop {r1} bx r1 thumb_func_end sub_8095298 thumb_func_start sub_80952C4 sub_80952C4: push {r4,lr} ldr r2, _080952EC ldr r1, [r2] movs r0, 0 str r0, [r1] movs r3, 0 adds r4, r2, 0 movs r2, 0x1 negs r2, r2 _080952D6: ldr r0, [r4] lsls r1, r3, 2 adds r0, 0x4 adds r0, r1 str r2, [r0] adds r3, 0x1 cmp r3, 0x1F ble _080952D6 pop {r4} pop {r0} bx r0 .align 2, 0 _080952EC: .4byte gUnknown_203B48C thumb_func_end sub_80952C4 thumb_func_start sub_80952F0 sub_80952F0: push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r1, r0, 24 movs r3, 0 ldr r0, _08095310 ldr r2, [r0] _080952FE: ldrb r0, [r2] cmp r0, r1 bne _08095314 ldr r0, [r2, 0x10] cmp r0, r4 bne _08095314 movs r0, 0x1 b _0809531E .align 2, 0 _08095310: .4byte gUnknown_203B480 _08095314: adds r2, 0x30 adds r3, 0x1 cmp r3, 0x1F ble _080952FE movs r0, 0 _0809531E: pop {r4} pop {r1} bx r1 thumb_func_end sub_80952F0 thumb_func_start sub_8095324 sub_8095324: push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r3, 0 ldr r0, _0809534C ldr r1, [r0] movs r2, 0x1F _08095332: ldrb r0, [r1] cmp r0, r4 bne _0809533A adds r3, 0x1 _0809533A: adds r1, 0x30 subs r2, 0x1 cmp r2, 0 bge _08095332 adds r0, r3, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0809534C: .4byte gUnknown_203B480 thumb_func_end sub_8095324 thumb_func_start sub_8095350 sub_8095350: push {lr} movs r3, 0 ldr r0, _08095370 ldr r1, [r0] movs r2, 0x1F _0809535A: ldrb r0, [r1] cmp r0, 0 beq _08095362 adds r3, 0x1 _08095362: adds r1, 0x30 subs r2, 0x1 cmp r2, 0 bge _0809535A adds r0, r3, 0 pop {r1} bx r1 .align 2, 0 _08095370: .4byte gUnknown_203B480 thumb_func_end sub_8095350 thumb_func_start sub_8095374 sub_8095374: push {lr} movs r3, 0x1 negs r3, r3 movs r2, 0 ldr r0, _08095398 ldr r1, [r0] _08095380: ldrb r0, [r1] cmp r0, 0x1 bne _08095388 adds r3, r2, 0 _08095388: adds r1, 0x30 adds r2, 0x1 cmp r2, 0x1F ble _08095380 adds r0, r3, 0 pop {r1} bx r1 .align 2, 0 _08095398: .4byte gUnknown_203B480 thumb_func_end sub_8095374 thumb_func_start sub_809539C sub_809539C: push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r1, r0, 24 movs r3, 0 ldr r0, _080953BC ldr r2, [r0] _080953AA: ldrb r0, [r2] cmp r0, r1 bne _080953C0 ldr r0, [r2, 0x10] cmp r0, r4 bne _080953C0 adds r0, r3, 0 b _080953CC .align 2, 0 _080953BC: .4byte gUnknown_203B480 _080953C0: adds r2, 0x30 adds r3, 0x1 cmp r3, 0x1F ble _080953AA movs r0, 0x1 negs r0, r0 _080953CC: pop {r4} pop {r1} bx r1 thumb_func_end sub_809539C thumb_func_start sub_80953D4 sub_80953D4: push {lr} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r0, _080953EC ldr r1, [r0] _080953E0: ldrb r0, [r1] cmp r0, r3 bne _080953F0 adds r0, r2, 0 b _080953FC .align 2, 0 _080953EC: .4byte gUnknown_203B480 _080953F0: adds r1, 0x30 adds r2, 0x1 cmp r2, 0x1F ble _080953E0 movs r0, 0x1 negs r0, r0 _080953FC: pop {r1} bx r1 thumb_func_end sub_80953D4 thumb_func_start sub_8095400 sub_8095400: push {lr} adds r3, r0, 0 movs r2, 0 ldr r0, _08095418 ldr r0, [r0] adds r1, r0, 0 adds r1, 0x10 _0809540E: ldr r0, [r1] cmp r0, r3 bne _0809541C adds r0, r2, 0 b _08095428 .align 2, 0 _08095418: .4byte gUnknown_203B480 _0809541C: adds r1, 0x30 adds r2, 0x1 cmp r2, 0x1F ble _0809540E movs r0, 0x1 negs r0, r0 _08095428: pop {r1} bx r1 thumb_func_end sub_8095400 thumb_func_start sub_809542C sub_809542C: push {r4,lr} sub sp, 0x14 ldr r4, _08095490 ldr r2, [r4] movs r1, 0x1 strb r1, [r2] ldr r2, [r4] ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2, 0x4] str r1, [r2, 0x8] bl Random bl sub_8094D28 bl sub_8094E4C ldr r1, [r4] str r0, [r1, 0x10] bl sub_808D33C ldr r1, [r4] ldrh r0, [r0, 0x8] strh r0, [r1, 0xC] bl sub_808D33C adds r1, r0, 0 mov r0, sp bl sub_808DA34 ldr r0, [r4] adds r0, 0x14 mov r1, sp bl CopyStringtoBuffer bl sub_8011C34 ldr r1, [r4] str r0, [r1, 0x24] ldrb r0, [r1, 0x4] bl GetUnk3 ldr r1, [r4] adds r1, 0x2C strb r0, [r1] add sp, 0x14 pop {r4} pop {r0} bx r0 .align 2, 0 _08095490: .4byte gUnknown_203B480 thumb_func_end sub_809542C thumb_func_start sub_8095494 sub_8095494: lsls r1, 24 lsrs r1, 24 ldr r2, _080954B0 ldr r3, [r2] lsls r2, r1, 1 adds r2, r1 lsls r2, 4 adds r3, r2 ldr r1, [r3, 0x4] ldr r2, [r3, 0x8] str r1, [r0] str r2, [r0, 0x4] bx lr .align 2, 0 _080954B0: .4byte gUnknown_203B480 thumb_func_end sub_8095494 thumb_func_start sub_80954B4 sub_80954B4: push {lr} movs r0, 0x3 bl sub_8095324 cmp r0, 0 bne _080954C4 movs r0, 0 b _080954C6 _080954C4: movs r0, 0x1 _080954C6: pop {r1} bx r1 thumb_func_end sub_80954B4 thumb_func_start sub_80954CC sub_80954CC: push {r4-r6,lr} sub sp, 0x10 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809485C ldr r6, _08095618 movs r5, 0 movs r4, 0x1F _080954E2: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_8095774 adds r5, 0x30 subs r4, 0x1 cmp r4, 0 bge _080954E2 ldr r4, _0809561C ldr r1, [r4] mov r0, sp movs r2, 0x20 bl sub_8094924 ldr r5, [r4] adds r4, r5, 0x4 adds r0, r4, 0 movs r1, 0 movs r2, 0x58 bl memset mov r0, sp adds r1, r4, 0 movs r2, 0x2 bl sub_8094924 adds r1, r5, 0x6 mov r0, sp movs r2, 0x1 bl sub_8094924 adds r1, r5, 0x7 mov r0, sp movs r2, 0x7 bl sub_8094924 adds r4, 0x4 mov r0, sp adds r1, r4, 0 bl sub_8090314 adds r1, r5, 0 adds r1, 0xC mov r0, sp movs r2, 0x9 bl sub_8094924 adds r1, r5, 0 adds r1, 0x10 mov r0, sp bl sub_808F410 adds r1, r5, 0 adds r1, 0x14 mov r0, sp bl sub_808F410 adds r1, r5, 0 adds r1, 0x18 mov r0, sp movs r2, 0xA bl sub_8094924 adds r1, r5, 0 adds r1, 0x1A mov r0, sp movs r2, 0xA bl sub_8094924 adds r1, r5, 0 adds r1, 0x1C mov r0, sp movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x1D mov r0, sp movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x1E mov r0, sp movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x1F mov r0, sp movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x20 mov r0, sp movs r2, 0x18 bl sub_8094924 adds r1, r5, 0 adds r1, 0x24 mov r0, sp movs r2, 0x18 bl sub_8094924 adds r1, r5, 0 adds r1, 0x28 mov r0, sp movs r2, 0x4 bl sub_8094924 adds r1, r5, 0 adds r1, 0x2C mov r0, sp bl sub_8091DC0 adds r1, r5, 0 adds r1, 0x30 mov r0, sp bl sub_8094128 adds r1, r5, 0 adds r1, 0x50 mov r0, sp movs r2, 0x50 bl sub_8094924 ldr r4, _08095620 ldr r1, [r4] mov r0, sp movs r2, 0x20 bl sub_8094924 adds r6, r4, 0 movs r5, 0x4 movs r4, 0x1F _080955F4: ldr r1, [r6] adds r1, r5 mov r0, sp movs r2, 0x20 bl sub_8094924 adds r5, 0x4 subs r4, 0x1 cmp r4, 0 bge _080955F4 mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08095618: .4byte gUnknown_203B480 _0809561C: .4byte gUnknown_203B484 _08095620: .4byte gUnknown_203B48C thumb_func_end sub_80954CC thumb_func_start sub_8095624 sub_8095624: push {r4-r6,lr} sub sp, 0x10 adds r3, r0, 0 adds r2, r1, 0 mov r0, sp adds r1, r3, 0 bl sub_809486C ldr r6, _08095768 movs r5, 0 movs r4, 0x1F _0809563A: ldr r1, [r6] adds r1, r5 mov r0, sp bl sub_8095824 adds r5, 0x30 subs r4, 0x1 cmp r4, 0 bge _0809563A ldr r4, _0809576C ldr r1, [r4] mov r0, sp movs r2, 0x20 bl sub_809488C ldr r5, [r4] adds r4, r5, 0x4 mov r0, sp adds r1, r4, 0 movs r2, 0x2 bl sub_809488C adds r1, r5, 0x6 mov r0, sp movs r2, 0x1 bl sub_809488C adds r1, r5, 0x7 mov r0, sp movs r2, 0x7 bl sub_809488C adds r4, 0x4 mov r0, sp adds r1, r4, 0 bl sub_80902F4 adds r1, r5, 0 adds r1, 0xC mov r0, sp movs r2, 0x9 bl sub_809488C adds r1, r5, 0 adds r1, 0x10 mov r0, sp bl sub_808F41C adds r1, r5, 0 adds r1, 0x14 mov r0, sp bl sub_808F41C adds r1, r5, 0 adds r1, 0x18 mov r0, sp movs r2, 0xA bl sub_809488C adds r1, r5, 0 adds r1, 0x1A mov r0, sp movs r2, 0xA bl sub_809488C adds r1, r5, 0 adds r1, 0x1C mov r0, sp movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x1D mov r0, sp movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x1E mov r0, sp movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x1F mov r0, sp movs r2, 0x8 bl sub_809488C adds r1, r5, 0 adds r1, 0x20 mov r0, sp movs r2, 0x18 bl sub_809488C adds r1, r5, 0 adds r1, 0x24 mov r0, sp movs r2, 0x18 bl sub_809488C adds r1, r5, 0 adds r1, 0x28 mov r0, sp movs r2, 0x4 bl sub_809488C adds r1, r5, 0 adds r1, 0x2C mov r0, sp bl sub_8091DE0 adds r1, r5, 0 adds r1, 0x30 mov r0, sp bl sub_8094108 adds r1, r5, 0 adds r1, 0x50 mov r0, sp movs r2, 0x50 bl sub_809488C ldr r4, _08095770 ldr r1, [r4] mov r0, sp movs r2, 0x20 bl sub_809488C adds r6, r4, 0 movs r5, 0x4 movs r4, 0x1F _08095742: ldr r1, [r6] adds r1, r5 mov r0, sp movs r2, 0x20 bl sub_809488C adds r5, 0x4 subs r4, 0x1 cmp r4, 0 bge _08095742 mov r0, sp bl nullsub_102 ldr r0, [sp, 0x8] add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08095768: .4byte gUnknown_203B480 _0809576C: .4byte gUnknown_203B484 _08095770: .4byte gUnknown_203B48C thumb_func_end sub_8095624 thumb_func_start sub_8095774 sub_8095774: push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 bl sub_8094924 adds r1, r5, 0x4 adds r0, r4, 0 bl sub_8090314 adds r1, r5, 0 adds r1, 0x8 adds r0, r4, 0 movs r2, 0x18 bl sub_8094924 adds r1, r5, 0 adds r1, 0xC adds r0, r4, 0 movs r2, 0x9 bl sub_8094924 adds r1, r5, 0 adds r1, 0x10 adds r0, r4, 0 movs r2, 0x20 bl sub_8094924 adds r1, r5, 0 adds r1, 0x14 adds r0, r4, 0 movs r2, 0x50 bl sub_8094924 adds r1, r5, 0 adds r1, 0x20 adds r0, r4, 0 movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x21 adds r0, r4, 0 movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x22 adds r0, r4, 0 movs r2, 0x8 bl sub_8094924 adds r1, r5, 0 adds r1, 0x24 adds r0, r4, 0 movs r2, 0x20 bl sub_8094924 adds r1, r5, 0 adds r1, 0x28 adds r0, r4, 0 movs r2, 0x20 bl sub_8094924 adds r1, r5, 0 adds r1, 0x2C adds r0, r4, 0 movs r2, 0x8 bl sub_8094924 adds r0, r4, 0 mov r1, sp movs r2, 0x1 bl sub_8094924 mov r0, sp ldrb r1, [r0] movs r0, 0x1 ands r0, r1 adds r1, r5, 0 adds r1, 0x2D strb r0, [r1] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8095774 thumb_func_start sub_8095824 sub_8095824: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 movs r1, 0xFF mov r0, sp strb r1, [r0] mov r6, sp adds r6, 0x1 movs r0, 0 strb r0, [r6] adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x4 bl sub_809488C adds r1, r4, 0x4 adds r0, r5, 0 bl sub_80902F4 adds r1, r4, 0 adds r1, 0x8 adds r0, r5, 0 movs r2, 0x18 bl sub_809488C adds r1, r4, 0 adds r1, 0xC adds r0, r5, 0 movs r2, 0x9 bl sub_809488C adds r1, r4, 0 adds r1, 0x10 adds r0, r5, 0 movs r2, 0x20 bl sub_809488C adds r1, r4, 0 adds r1, 0x14 adds r0, r5, 0 movs r2, 0x50 bl sub_809488C adds r1, r4, 0 adds r1, 0x20 adds r0, r5, 0 movs r2, 0x8 bl sub_809488C adds r1, r4, 0 adds r1, 0x21 adds r0, r5, 0 movs r2, 0x8 bl sub_809488C adds r1, r4, 0 adds r1, 0x22 adds r0, r5, 0 movs r2, 0x8 bl sub_809488C adds r1, r4, 0 adds r1, 0x24 adds r0, r5, 0 movs r2, 0x20 bl sub_809488C adds r1, r4, 0 adds r1, 0x28 adds r0, r5, 0 movs r2, 0x20 bl sub_809488C adds r1, r4, 0 adds r1, 0x2C adds r0, r5, 0 movs r2, 0x8 bl sub_809488C adds r0, r4, 0 adds r0, 0x2D ldrb r0, [r0] mov r1, sp cmp r0, 0 bne _080958D2 adds r1, r6, 0 _080958D2: adds r0, r5, 0 movs r2, 0x1 bl sub_809488C add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8095824 thumb_func_start sub_80958E4 sub_80958E4: str r1, [r0] bx lr thumb_func_end sub_80958E4 .align 2,0