.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start HasStatusAffectingActions HasStatusAffectingActions: push {r4-r6,lr} adds r5, r0, 0 ldr r4, [r5, 0x70] ldr r0, _08070050 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument adds r0, r4, 0 adds r0, 0x44 movs r1, 0x1 bl sub_8044C94 adds r0, r4, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x3 bne _08070042 b _0807019C _08070042: cmp r0, 0x3 bgt _08070054 cmp r0, 0x1 bne _0807004C b _0807019C _0807004C: b _0807005A .align 2, 0 _08070050: .4byte gAvailablePokemonNames _08070054: cmp r0, 0x5 bne _0807005A b _0807019C _0807005A: adds r0, r4, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x3 beq _0807008C cmp r0, 0x3 bgt _0807006E cmp r0, 0x1 beq _0807007A b _080700AC _0807006E: cmp r0, 0x4 beq _0807009C cmp r0, 0x6 bne _08070078 b _0807019C _08070078: b _080700AC _0807007A: ldr r0, _08070088 ldr r1, [r0] adds r0, r5, 0 bl SendMessage b _0807019C .align 2, 0 _08070088: .4byte gUnknown_80F954C _0807008C: ldr r0, _08070098 ldr r1, [r0] adds r0, r5, 0 bl SendMessage b _0807019C .align 2, 0 _08070098: .4byte gUnknown_80F956C _0807009C: ldr r0, _080700A8 ldr r1, [r0] adds r0, r5, 0 bl SendMessage b _0807019C .align 2, 0 _080700A8: .4byte gUnknown_80F958C _080700AC: adds r0, r4, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x3 beq _080700D4 cmp r0, 0x7 beq _080700E4 adds r0, r4, 0 adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0x1 bne _080700F4 ldr r0, _080700D0 ldr r1, [r0] adds r0, r5, 0 bl SendMessage b _0807019C .align 2, 0 _080700D0: .4byte gUnknown_80F95D8 _080700D4: ldr r0, _080700E0 ldr r1, [r0] adds r0, r5, 0 bl SendMessage b _0807019C .align 2, 0 _080700E0: .4byte gUnknown_80F95A4 _080700E4: ldr r0, _080700F0 ldr r1, [r0] adds r0, r5, 0 bl SendMessage b _0807019C .align 2, 0 _080700F0: .4byte gUnknown_80F95BC _080700F4: adds r0, r4, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 bne _0807012E adds r0, r4, 0 adds r0, 0x44 movs r2, 0x2 ldrsh r1, [r4, r2] bl SetWalkAction movs r0, 0x8 bl DungeonRandomCapped adds r1, r4, 0 adds r1, 0x46 strb r0, [r1] ldrh r1, [r5, 0x4] movs r2, 0xB6 lsls r2, 1 adds r0, r4, r2 strh r1, [r0] ldrh r0, [r5, 0x6] subs r0, 0x1 movs r1, 0xB7 lsls r1, 1 adds r2, r4, r1 strh r0, [r2] b _0807019C _0807012E: ldrb r0, [r4, 0x8] cmp r0, 0x1 beq _0807019C adds r0, r4, 0 adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x1 bne _0807017C adds r6, r4, 0 adds r6, 0x46 ldrb r1, [r6] adds r0, r5, 0 bl sub_8070D6C lsls r0, 24 cmp r0, 0 bne _08070166 movs r0, 0x2 bl DungeonRandomCapped cmp r0, 0 beq _08070174 movs r0, 0x8 bl DungeonRandomCapped movs r1, 0x7 ands r1, r0 strb r1, [r6] _08070166: adds r0, r4, 0 adds r0, 0x44 movs r2, 0x2 ldrsh r1, [r4, r2] bl SetWalkAction b _0807019C _08070174: adds r0, r5, 0 bl DecideAttack b _0807019C _0807017C: cmp r0, 0x2 beq _08070184 movs r0, 0 b _0807019E _08070184: adds r0, r4, 0 adds r0, 0x44 movs r2, 0x2 ldrsh r1, [r4, r2] bl SetWalkAction movs r0, 0x8 bl DungeonRandomCapped adds r1, r4, 0 adds r1, 0x46 strb r0, [r1] _0807019C: movs r0, 0x1 _0807019E: pop {r4-r6} pop {r1} bx r1 thumb_func_end HasStatusAffectingActions thumb_func_start sub_80701A4 sub_80701A4: push {r4-r7,lr} adds r7, r0, 0 ldr r6, [r7, 0x70] movs r4, 0 ldr r0, _080701D4 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument adds r0, r6, 0 adds r0, 0x44 movs r1, 0x1 bl sub_8044C94 adds r0, r6, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x3 beq _080701DC cmp r0, 0x3 bgt _080701D8 cmp r0, 0x1 beq _080701DC b _080701E4 .align 2, 0 _080701D4: .4byte gAvailablePokemonNames _080701D8: cmp r0, 0x5 bne _080701E4 _080701DC: ldr r0, _080701E0 b _08070278 .align 2, 0 _080701E0: .4byte gUnknown_80F95EC _080701E4: adds r0, r6, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x3 beq _0807020C cmp r0, 0x3 bgt _080701F8 cmp r0, 0x1 beq _08070202 b _0807021C _080701F8: cmp r0, 0x4 beq _08070214 cmp r0, 0x6 beq _08070280 b _0807021C _08070202: ldr r0, _08070208 b _08070278 .align 2, 0 _08070208: .4byte gUnknown_80F954C _0807020C: ldr r0, _08070210 b _08070278 .align 2, 0 _08070210: .4byte gUnknown_80F956C _08070214: ldr r0, _08070218 b _08070278 .align 2, 0 _08070218: .4byte gUnknown_80F958C _0807021C: adds r0, r6, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x8 bhi _0807026C lsls r0, 2 ldr r1, _08070230 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08070230: .4byte _08070234 .align 2, 0 _08070234: .4byte _0807026C .4byte _0807026C .4byte _08070258 .4byte _0807025C .4byte _0807026C .4byte _0807026C .4byte _0807026C .4byte _08070264 .4byte _0807026C _08070258: movs r4, 0x1 b _0807026C _0807025C: ldr r0, _08070260 b _08070278 .align 2, 0 _08070260: .4byte gUnknown_80F95A4 _08070264: ldr r0, _08070268 b _08070278 .align 2, 0 _08070268: .4byte gUnknown_80F95BC _0807026C: adds r0, r6, 0 adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0x1 bne _08070288 ldr r0, _08070284 _08070278: ldr r1, [r0] adds r0, r7, 0 bl SendMessage _08070280: movs r0, 0x1 b _08070322 .align 2, 0 _08070284: .4byte gUnknown_80F95D8 _08070288: cmp r0, 0 beq _08070320 cmp r0, 0xB beq _08070320 cmp r0, 0xC beq _08070320 cmp r4, 0 beq _080702A8 ldr r0, _080702A4 ldr r1, [r0] adds r0, r7, 0 bl SendMessage b _0807031A .align 2, 0 _080702A4: .4byte gPtrMoveInterruptedMessage _080702A8: movs r5, 0 movs r0, 0x8C lsls r0, 1 adds r4, r6, r0 _080702B0: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08070312 adds r0, r7, 0 adds r1, r4, 0 bl sub_80570AC lsls r0, 24 cmp r0, 0 beq _08070312 adds r0, r6, 0 adds r0, 0xC2 ldrb r0, [r0] cmp r0, r5 bne _08070312 adds r0, r6, 0 adds r0, 0x44 movs r1, 0x14 bl sub_8044C94 adds r3, r5, 0 adds r7, r6, 0 adds r7, 0x50 cmp r5, 0 ble _0807030E ldrb r1, [r4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0807030E movs r4, 0x2 lsls r0, r5, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 adds r2, r0, r6 _080702FC: subs r2, 0x8 subs r3, 0x1 cmp r3, 0 ble _0807030E ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _080702FC _0807030E: strb r3, [r7] b _08070280 _08070312: adds r4, 0x8 adds r5, 0x1 cmp r5, 0x3 ble _080702B0 _0807031A: adds r0, r7, 0 bl sub_8079764 _08070320: movs r0, 0 _08070322: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80701A4 thumb_func_start sub_8070328 sub_8070328: push {lr} lsls r0, 16 asrs r0, 16 bl GetWalkableTiles lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bhi _0807033E adds r0, r1, 0 b _08070344 _0807033E: ldr r0, _08070348 adds r0, r1, r0 ldrb r0, [r0] _08070344: pop {r1} bx r1 .align 2, 0 _08070348: .4byte gUnknown_202F314 thumb_func_end sub_8070328 thumb_func_start sub_807034C sub_807034C: push {r4,lr} adds r4, r1, 0 lsls r0, 16 asrs r2, r0, 16 ldr r0, [r4, 0x10] cmp r0, 0 bne _08070398 ldrh r1, [r4] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08070398 adds r0, r2, 0 bl sub_8070328 lsls r0, 24 lsrs r2, r0, 24 ldrh r0, [r4] movs r1, 0x3 ands r1, r0 cmp r2, 0x1 beq _08070388 cmp r2, 0x1 bgt _08070382 cmp r2, 0 beq _0807038C b _08070390 _08070382: cmp r2, 0x2 beq _08070394 b _08070390 _08070388: cmp r1, 0x2 beq _08070390 _0807038C: cmp r1, 0x1 bne _08070398 _08070390: movs r0, 0 b _0807039A _08070394: cmp r1, 0 bne _08070390 _08070398: movs r0, 0x1 _0807039A: pop {r4} pop {r1} bx r1 thumb_func_end sub_807034C thumb_func_start sub_80703A0 sub_80703A0: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r7, [r6, 0x70] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 blt _08070456 movs r2, 0x2 ldrsh r1, [r4, r2] cmp r1, 0 blt _08070456 cmp r0, 0x37 bgt _08070456 cmp r1, 0x1F bgt _08070456 ldr r0, [r5, 0x10] cmp r0, 0 bne _08070456 ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08070456 bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08070400 adds r0, r7, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _0807044E adds r0, r6, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _0807044E _08070400: movs r1, 0x2 ldrsh r0, [r7, r1] bl sub_8070328 lsls r0, 24 lsrs r4, r0, 24 ldrh r0, [r5] movs r5, 0x3 ands r5, r0 adds r0, r6, 0 movs r1, 0xC bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08070422 movs r4, 0x2 _08070422: adds r0, r6, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08070432 movs r4, 0x3 _08070432: cmp r4, 0x1 beq _08070446 cmp r4, 0x1 bgt _08070440 cmp r4, 0 beq _0807044A b _0807044E _08070440: cmp r4, 0x2 beq _08070452 b _0807044E _08070446: cmp r5, 0x2 beq _0807044E _0807044A: cmp r5, 0x1 bne _08070456 _0807044E: movs r0, 0 b _08070458 _08070452: cmp r5, 0 bne _0807044E _08070456: movs r0, 0x1 _08070458: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80703A0 thumb_func_start sub_8070460 sub_8070460: push {r4,lr} adds r1, r0, 0 ldr r0, [r1, 0x70] adds r4, r0, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070492 adds r0, r1, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _08070492 movs r1, 0x2 ldrsh r0, [r4, r1] bl sub_8070328 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08070492 movs r0, 0 b _08070494 _08070492: movs r0, 0x1 _08070494: pop {r4} pop {r1} bx r1 thumb_func_end sub_8070460 thumb_func_start sub_807049C sub_807049C: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r7, [r6, 0x70] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 blt _0807055A movs r2, 0x2 ldrsh r1, [r4, r2] cmp r1, 0 blt _0807055A cmp r0, 0x37 bgt _0807055A cmp r1, 0x1F bgt _0807055A ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0807055A ldr r0, [r5, 0x10] cmp r0, 0 beq _080704E2 bl sub_80450F8 cmp r0, 0x1 bne _0807055A _080704E2: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08070504 adds r0, r7, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070552 adds r0, r6, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _08070552 _08070504: movs r1, 0x2 ldrsh r0, [r7, r1] bl sub_8070328 lsls r0, 24 lsrs r4, r0, 24 ldrh r0, [r5] movs r5, 0x3 ands r5, r0 adds r0, r6, 0 movs r1, 0xC bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08070526 movs r4, 0x2 _08070526: adds r0, r6, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08070536 movs r4, 0x3 _08070536: cmp r4, 0x1 beq _0807054A cmp r4, 0x1 bgt _08070544 cmp r4, 0 beq _0807054E b _08070552 _08070544: cmp r4, 0x2 beq _08070556 b _08070552 _0807054A: cmp r5, 0x2 beq _08070552 _0807054E: cmp r5, 0x1 bne _0807055A _08070552: movs r0, 0 b _0807055C _08070556: cmp r5, 0 bne _08070552 _0807055A: movs r0, 0x1 _0807055C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_807049C thumb_func_start sub_8070564 sub_8070564: push {r4-r6,lr} adds r4, r1, 0 ldr r6, [r0, 0x70] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 blt _080705E6 movs r2, 0x2 ldrsh r1, [r4, r2] cmp r1, 0 blt _080705E6 cmp r0, 0x37 bgt _080705E6 cmp r1, 0x1F bgt _080705E6 ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080705E6 ldr r0, [r5, 0x10] cmp r0, 0 beq _080705A8 bl sub_80450F8 cmp r0, 0x1 bne _080705E6 _080705A8: movs r1, 0x2 ldrsh r0, [r6, r1] bl sub_8070328 lsls r0, 24 lsrs r2, r0, 24 adds r3, r2, 0 ldrh r0, [r5] movs r1, 0x3 ands r1, r0 adds r0, r1, 0 cmp r2, 0x1 beq _080705DE cmp r2, 0x1 bgt _080705CC cmp r2, 0 beq _080705D8 b _080705D4 _080705CC: cmp r3, 0x3 bgt _080705D4 cmp r1, 0 beq _080705E6 _080705D4: movs r0, 0 b _080705E8 _080705D8: cmp r1, 0x1 bne _080705E6 b _080705D4 _080705DE: cmp r1, 0x2 beq _080705D4 cmp r0, 0x1 beq _080705D4 _080705E6: movs r0, 0x1 _080705E8: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8070564 thumb_func_start sub_80705F0 sub_80705F0: push {r4-r7,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r7, [r6, 0x70] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 blt _0807069A movs r2, 0x2 ldrsh r1, [r4, r2] cmp r1, 0 blt _0807069A cmp r0, 0x37 bgt _0807069A cmp r1, 0x1F bgt _0807069A ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0807069A ldr r0, [r5, 0x10] cmp r0, 0 beq _08070636 bl sub_80450F8 cmp r0, 0x1 bne _0807069A _08070636: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08070658 adds r0, r7, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070696 adds r0, r6, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _08070696 _08070658: movs r1, 0x2 ldrsh r0, [r7, r1] bl sub_8070328 lsls r0, 24 lsrs r4, r0, 24 ldrh r0, [r5] movs r5, 0x3 ands r5, r0 adds r0, r6, 0 movs r1, 0xC bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _0807067A movs r4, 0x2 _0807067A: adds r0, r6, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _0807068A movs r4, 0x3 _0807068A: cmp r4, 0 blt _08070696 cmp r4, 0x2 bgt _08070696 cmp r5, 0 beq _0807069A _08070696: movs r0, 0 b _0807069C _0807069A: movs r0, 0x1 _0807069C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80705F0 thumb_func_start sub_80706A4 sub_80706A4: push {r4-r7,lr} adds r7, r0, 0 adds r4, r1, 0 ldr r6, [r7, 0x70] movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_804954C adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 blt _0807076A movs r2, 0x2 ldrsh r1, [r4, r2] cmp r1, 0 blt _0807076A cmp r0, 0x37 bgt _0807076A cmp r1, 0x1F bgt _0807076A ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0807076A ldr r0, [r5, 0x10] cmp r0, 0 beq _080706F2 bl sub_80450F8 cmp r0, 0x1 bne _0807076A ldr r0, [r5, 0x10] ldr r0, [r0, 0x70] cmp r0, r6 bne _0807076A _080706F2: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08070714 adds r0, r6, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070762 adds r0, r7, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _08070762 _08070714: movs r1, 0x2 ldrsh r0, [r6, r1] bl sub_8070328 lsls r0, 24 lsrs r4, r0, 24 ldrh r0, [r5] movs r5, 0x3 ands r5, r0 adds r0, r7, 0 movs r1, 0xC bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08070736 movs r4, 0x2 _08070736: adds r0, r7, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08070746 movs r4, 0x3 _08070746: cmp r4, 0x1 beq _0807075A cmp r4, 0x1 bgt _08070754 cmp r4, 0 beq _0807075E b _08070762 _08070754: cmp r4, 0x2 beq _08070766 b _08070762 _0807075A: cmp r5, 0x2 beq _08070762 _0807075E: cmp r5, 0x1 bne _0807076A _08070762: movs r0, 0 b _0807076C _08070766: cmp r5, 0 bne _08070762 _0807076A: movs r0, 0x1 _0807076C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80706A4 thumb_func_start sub_8070774 sub_8070774: push {r4-r6,lr} adds r6, r0, 0 ldr r5, [r6, 0x70] movs r4, 0 movs r0, 0x84 lsls r0, 1 adds r1, r5, r0 movs r2, 0x4 _08070784: ldrb r0, [r1, 0x5] cmp r0, 0 beq _0807078C subs r4, 0x1 _0807078C: ldrb r0, [r1] cmp r0, 0 beq _08070794 adds r4, 0x1 _08070794: adds r1, 0x1 subs r2, 0x1 cmp r2, 0 bge _08070784 adds r0, r5, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _080707A8 subs r4, 0x1 _080707A8: movs r1, 0x2 ldrsh r0, [r5, r1] bl GetMoveSpeed adds r4, r0 adds r0, r6, 0 movs r1, 0x6 bl sub_8071858 lsls r0, 24 cmp r0, 0 beq _080707D0 adds r0, r6, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x7 bne _080707D0 adds r4, 0x1 _080707D0: movs r0, 0x4 ldrsh r1, [r5, r0] ldr r0, _0807081C cmp r1, r0 bne _080707DC adds r4, 0x1 _080707DC: movs r0, 0x2 ldrsh r1, [r5, r0] movs r0, 0xBE lsls r0, 1 cmp r1, r0 bne _080707FE ldrb r0, [r5, 0x6] cmp r0, 0 beq _080707FE ldr r0, _08070820 ldr r0, [r0] ldr r1, _08070824 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080707FE adds r4, 0x1 _080707FE: cmp r4, 0 bge _08070804 movs r4, 0 _08070804: cmp r4, 0x4 ble _0807080A movs r4, 0x4 _0807080A: movs r1, 0x82 lsls r1, 1 adds r0, r5, r1 str r4, [r0] adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0807081C: .4byte 0x000001a3 _08070820: .4byte gDungeonGlobalData _08070824: .4byte 0x0000066e thumb_func_end sub_8070774 thumb_func_start sub_8070828 sub_8070828: push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 movs r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08070840 movs r0, 0 b _080708AE _08070840: adds r0, r4, 0 movs r1, 0x1B bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807085E adds r0, r4, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _0807085E movs r5, 0x1 _0807085E: adds r0, r4, 0 movs r1, 0x4A bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807087C adds r0, r4, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0807087C movs r5, 0x1 _0807087C: cmp r6, 0 beq _080708A0 ldr r0, [r4, 0x70] movs r1, 0x40 adds r2, r5, 0 bl sub_8071ACC lsls r0, 24 cmp r0, 0 beq _080708A0 adds r0, r4, 0 bl sub_80429B4 ldr r0, _080708A8 ldr r1, [r0] adds r0, r4, 0 bl SendMessage _080708A0: cmp r5, 0 bne _080708AC movs r0, 0x1 b _080708AE .align 2, 0 _080708A8: .4byte gUnknown_80FEE80 _080708AC: movs r0, 0x2 _080708AE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8070828 thumb_func_start sub_80708B4 sub_80708B4: push {r4,r5,lr} adds r3, r0, 0 adds r4, r2, 0 ldr r0, _080708E8 ldr r2, [r0] ldr r5, _080708EC adds r0, r2, r5 ldrb r0, [r0] cmp r0, 0 bne _080708DC adds r5, 0x6 adds r0, r2, r5 ldrb r0, [r0] cmp r0, 0 bne _080708DC adds r0, r1, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 bne _080708F4 _080708DC: ldrb r0, [r1, 0x6] cmp r0, 0 beq _080708F4 ldr r0, _080708F0 b _08070900 .align 2, 0 _080708E8: .4byte gDungeonGlobalData _080708EC: .4byte 0x0001820a _080708F0: .4byte gUnknown_80F8988 _080708F4: adds r0, r1, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 bne _08070910 ldr r0, _0807090C _08070900: ldr r1, [r0] adds r0, r3, 0 bl strcpy b _0807095A .align 2, 0 _0807090C: .4byte gUnknown_80F8968 _08070910: ldrb r0, [r1, 0x6] cmp r0, 0 beq _08070942 adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0807092A adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _08070936 _0807092A: movs r0, 0x4 ldrsh r1, [r1, r0] adds r0, r3, 0 bl CopyYellowSpeciesNametoBuffer b _0807095A _08070936: movs r5, 0x4 ldrsh r1, [r1, r5] adds r0, r3, 0 bl CopyCyanSpeciesNametoBuffer b _0807095A _08070942: ldr r2, _08070960 ldrb r1, [r1, 0xA] movs r0, 0x64 muls r0, r1 ldr r1, _08070964 adds r0, r1 ldr r1, [r2] adds r1, r0 adds r0, r3, 0 adds r2, r4, 0 bl sub_808D9DC _0807095A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08070960: .4byte gRecruitedPokemonRef _08070964: .4byte 0x00008df8 thumb_func_end sub_80708B4 thumb_func_start sub_8070968 sub_8070968: push {r4,lr} adds r4, r0, 0 adds r3, r2, 0 adds r0, r1, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 bne _08070990 ldr r1, _08070988 adds r2, 0x30 ldr r0, _0807098C ldr r3, [r0] adds r0, r4, 0 bl ExpandPlaceholdersBuffer b _080709BA .align 2, 0 _08070988: .4byte gUnknown_8106FA4 _0807098C: .4byte gUnknown_80F8974 _08070990: ldrb r0, [r1, 0x6] cmp r0, 0 beq _080709A2 movs r0, 0x4 ldrsh r1, [r1, r0] adds r0, r4, 0 bl CopyCyanSpeciesNametoBuffer b _080709BA _080709A2: ldr r2, _080709C0 ldrb r1, [r1, 0xA] movs r0, 0x64 muls r0, r1 ldr r1, _080709C4 adds r0, r1 ldr r1, [r2] adds r1, r0 adds r0, r4, 0 adds r2, r3, 0 bl sub_808D9DC _080709BA: pop {r4} pop {r0} bx r0 .align 2, 0 _080709C0: .4byte gRecruitedPokemonRef _080709C4: .4byte 0x00008df8 thumb_func_end sub_8070968 thumb_func_start sub_80709C8 sub_80709C8: push {r4,lr} adds r3, r0, 0 ldr r0, _080709F8 ldr r2, [r0] ldr r4, _080709FC adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0 bne _080709EE adds r4, 0x6 adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0 bne _080709EE adds r0, r1, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 bne _08070A04 _080709EE: ldrb r0, [r1, 0x6] cmp r0, 0 beq _08070A04 ldr r0, _08070A00 b _08070A10 .align 2, 0 _080709F8: .4byte gDungeonGlobalData _080709FC: .4byte 0x0001820a _08070A00: .4byte gUnknown_80F8994 _08070A04: adds r0, r1, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 bne _08070A20 ldr r0, _08070A1C _08070A10: ldr r1, [r0] adds r0, r3, 0 bl strcpy b _08070A48 .align 2, 0 _08070A1C: .4byte gUnknown_80F8974 _08070A20: ldrb r0, [r1, 0x6] cmp r0, 0 beq _08070A32 movs r0, 0x4 ldrsh r1, [r1, r0] adds r0, r3, 0 bl CopySpeciesNametoBuffer b _08070A48 _08070A32: ldr r2, _08070A50 ldrb r1, [r1, 0xA] movs r0, 0x64 muls r0, r1 ldr r1, _08070A54 adds r0, r1 ldr r1, [r2] adds r1, r0 adds r0, r3, 0 bl sub_808DA0C _08070A48: pop {r4} pop {r0} bx r0 .align 2, 0 _08070A50: .4byte gRecruitedPokemonRef _08070A54: .4byte 0x00008df8 thumb_func_end sub_80709C8 thumb_func_start sub_8070A58 sub_8070A58: push {r4,lr} ldr r0, [r0, 0x70] mov r12, r0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _08070ADE cmp r0, 0x3 beq _08070ADE cmp r0, 0x4 beq _08070ADE mov r0, r12 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0 bne _08070ADE mov r0, r12 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x5 beq _08070A86 cmp r0, 0 bne _08070ADE _08070A86: mov r0, r12 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0 bne _08070ADE mov r0, r12 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x1 beq _08070ADE cmp r0, 0x2 beq _08070ADE mov r0, r12 adds r0, 0xD0 ldrb r0, [r0] cmp r0, 0x1 beq _08070ADE mov r0, r12 adds r0, 0xDC ldrb r0, [r0] cmp r0, 0x2 beq _08070ADE mov r0, r12 adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x1 beq _08070ADE cmp r0, 0x2 beq _08070ADE mov r0, r12 adds r0, 0xEC ldrb r0, [r0] cmp r0, 0x1 beq _08070ADE mov r0, r12 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 bne _08070ADE mov r0, r12 adds r0, 0xFD ldrb r0, [r0] cmp r0, 0 beq _08070AE2 _08070ADE: movs r0, 0x1 b _08070B1E _08070AE2: movs r3, 0 movs r4, 0x1 movs r2, 0x8C lsls r2, 1 add r2, r12 _08070AEC: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08070B00 ldrb r1, [r2, 0x1] adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _08070ADE _08070B00: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _08070AEC movs r3, 0 ldr r1, _08070B24 add r1, r12 _08070B0E: adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _08070ADE adds r3, 0x1 cmp r3, 0x4 ble _08070B0E movs r0, 0 _08070B1E: pop {r4} pop {r1} bx r1 .align 2, 0 _08070B24: .4byte 0x0000010d thumb_func_end sub_8070A58 thumb_func_start sub_8070B28 sub_8070B28: push {lr} ldr r0, [r0, 0x70] adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _08070B40 cmp r0, 0x5 beq _08070B40 cmp r0, 0x3 beq _08070B40 movs r0, 0 b _08070B42 _08070B40: movs r0, 0x1 _08070B42: pop {r1} bx r1 thumb_func_end sub_8070B28 thumb_func_start sub_8070B48 sub_8070B48: push {lr} ldr r0, [r0, 0x70] adds r1, r0, 0 movs r2, 0x10 ldrsh r0, [r1, r2] cmp r0, 0 bge _08070B58 adds r0, 0x3 _08070B58: movs r2, 0xE ldrsh r1, [r1, r2] asrs r0, 2 cmp r1, r0 ble _08070B66 movs r0, 0 b _08070B68 _08070B66: movs r0, 0x1 _08070B68: pop {r1} bx r1 thumb_func_end sub_8070B48 thumb_func_start sub_8070B6C sub_8070B6C: push {lr} lsls r1, 24 ldr r2, [r0, 0x70] cmp r1, 0 beq _08070B80 adds r0, r2, 0 adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x1 beq _08070BB8 _08070B80: adds r0, r2, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _08070BB8 cmp r0, 0x5 beq _08070BB8 cmp r0, 0x3 beq _08070BB8 adds r0, r2, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x3 beq _08070BB8 cmp r0, 0x7 beq _08070BB8 adds r0, r2, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x6 beq _08070BB8 adds r0, r2, 0 adds r0, 0xFA ldrb r0, [r0] cmp r0, 0 bne _08070BB8 movs r0, 0 b _08070BBA _08070BB8: movs r0, 0x1 _08070BBA: pop {r1} bx r1 thumb_func_end sub_8070B6C thumb_func_start sub_8070BC0 sub_8070BC0: push {r4-r6,lr} adds r4, r0, 0 ldr r5, [r4, 0x70] movs r1, 0 bl sub_80570F4 lsls r0, 24 cmp r0, 0 bne _08070C56 adds r6, r5, 0 adds r6, 0xA8 ldrb r0, [r6] cmp r0, 0x4 beq _08070C56 cmp r0, 0x3 beq _08070C56 adds r0, r4, 0 bl sub_8071494 lsls r0, 24 cmp r0, 0 bne _08070C56 adds r0, r5, 0 adds r0, 0xEC ldrb r0, [r0] cmp r0, 0x1 beq _08070C56 adds r0, r5, 0 adds r0, 0xB0 ldrb r1, [r0] cmp r1, 0x6 beq _08070C56 cmp r1, 0x1 beq _08070C56 adds r0, r5, 0 adds r0, 0xBC ldrb r3, [r0] adds r4, r0, 0 cmp r3, 0x2 beq _08070C56 ldrb r2, [r6] cmp r2, 0x1 beq _08070C56 adds r0, r5, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _08070C56 cmp r2, 0x5 beq _08070C56 cmp r3, 0x1 beq _08070C56 cmp r1, 0x3 beq _08070C56 cmp r1, 0x4 beq _08070C56 adds r0, r5, 0 adds r0, 0xE8 ldrb r1, [r0] cmp r1, 0x2 beq _08070C56 adds r0, r5, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 beq _08070C56 cmp r1, 0x1 beq _08070C56 ldrb r0, [r4] cmp r0, 0x7 beq _08070C56 cmp r0, 0x3 beq _08070C56 movs r0, 0x1 b _08070C58 _08070C56: movs r0, 0 _08070C58: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8070BC0 thumb_func_start CannotUseItems CannotUseItems: push {r4,lr} adds r4, r0, 0 ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _08070CC6 adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08070C7E cmp r0, 0x47 bne _08070C82 _08070C7E: movs r0, 0x1 b _08070C84 _08070C82: movs r0, 0 _08070C84: cmp r0, 0 bne _08070CC6 ldrb r0, [r1, 0x7] cmp r0, 0 bne _08070C9A adds r0, r4, 0 bl sub_8071494 lsls r0, 24 cmp r0, 0 bne _08070CC6 _08070C9A: adds r0, r4, 0 movs r1, 0 bl sub_8070B6C lsls r0, 24 cmp r0, 0 bne _08070CC6 adds r0, r4, 0 bl sub_8070CD0 lsls r0, 24 cmp r0, 0 bne _08070CC6 adds r0, r4, 0 movs r1, 0 bl sub_80570F4 lsls r0, 24 cmp r0, 0 bne _08070CC6 movs r0, 0 b _08070CC8 _08070CC6: movs r0, 0x1 _08070CC8: pop {r4} pop {r1} bx r1 thumb_func_end CannotUseItems thumb_func_start sub_8070CD0 sub_8070CD0: push {lr} ldr r1, [r0, 0x70] adds r0, r1, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x2 beq _08070CE2 cmp r0, 0 bne _08070CFE _08070CE2: adds r0, r1, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 beq _08070CFE cmp r0, 0x6 beq _08070CFE adds r0, r1, 0 adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0x1 beq _08070CFE movs r0, 0 b _08070D00 _08070CFE: movs r0, 0x1 _08070D00: pop {r1} bx r1 thumb_func_end sub_8070CD0 thumb_func_start sub_8070D04 sub_8070D04: push {lr} adds r3, r0, 0 lsls r1, 24 ldr r2, [r3, 0x70] cmp r1, 0 bne _08070D22 adds r0, r2, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x2 beq _08070D22 cmp r0, 0x4 beq _08070D22 cmp r0, 0 bne _08070D64 _08070D22: adds r0, r2, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 beq _08070D64 cmp r0, 0x3 beq _08070D64 cmp r0, 0x4 beq _08070D64 cmp r0, 0x6 beq _08070D64 adds r0, r2, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x1 beq _08070D64 cmp r0, 0x3 beq _08070D64 cmp r0, 0x7 beq _08070D64 adds r0, r2, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 beq _08070D64 adds r0, r3, 0 bl sub_8071494 lsls r0, 24 cmp r0, 0 bne _08070D64 movs r0, 0 b _08070D66 _08070D64: movs r0, 0x1 _08070D66: pop {r1} bx r1 thumb_func_end sub_8070D04 thumb_func_start sub_8070D6C sub_8070D6C: push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r0, [r4, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r5, r0, 24 movs r2, 0x4 ldrsh r0, [r4, r2] ldr r1, _08070DD8 lsls r2, r6, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08070E34 ldr r0, [r2, 0x10] cmp r0, 0 bne _08070E34 bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08070E04 ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070DD2 adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08070DDC _08070DD2: movs r5, 0x3 b _08070E04 .align 2, 0 _08070DD8: .4byte gUnknown_80F4448 _08070DDC: adds r0, r4, 0 movs r1, 0xC bl HasIQSkill lsls r0, 24 cmp r0, 0 bne _08070E02 adds r0, r4, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08070E04 movs r0, 0x1 ands r0, r6 movs r5, 0x3 cmp r0, 0 beq _08070E04 _08070E02: movs r5, 0x2 _08070E04: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA adds r1, r5 ldr r2, _08070E30 movs r0, 0x7 ands r0, r6 adds r0, r2 ldrb r1, [r1] ldrb r0, [r0] ands r0, r1 cmp r0, 0 beq _08070E34 movs r0, 0x1 b _08070E36 .align 2, 0 _08070E30: .4byte gUnknown_8106FAD _08070E34: movs r0, 0 _08070E36: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8070D6C thumb_func_start sub_8070E3C sub_8070E3C: push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 ldr r0, [r4, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r5, r0, 24 movs r2, 0 ldrsh r0, [r6, r2] ldr r1, _08070EB0 lsls r2, r7, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x2 ldrsh r1, [r6, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08070F0C ldr r0, [r2, 0x10] cmp r0, 0 beq _08070E8A bl sub_80450F8 cmp r0, 0x1 bne _08070F0C _08070E8A: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08070EDC ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070EAC adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08070EB4 _08070EAC: movs r5, 0x3 b _08070EDC .align 2, 0 _08070EB0: .4byte gUnknown_80F4448 _08070EB4: adds r0, r4, 0 movs r1, 0xC bl HasIQSkill lsls r0, 24 cmp r0, 0 bne _08070EDA adds r0, r4, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08070EDC movs r0, 0x1 ands r0, r7 movs r5, 0x3 cmp r0, 0 beq _08070EDC _08070EDA: movs r5, 0x2 _08070EDC: movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] bl sub_804954C adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA adds r1, r5 ldr r2, _08070F08 movs r0, 0x7 ands r0, r7 adds r0, r2 ldrb r1, [r1] ldrb r0, [r0] ands r0, r1 cmp r0, 0 beq _08070F0C movs r0, 0x1 b _08070F0E .align 2, 0 _08070F08: .4byte gUnknown_8106FB5 _08070F0C: movs r0, 0 _08070F0E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8070E3C thumb_func_start sub_8070F14 sub_8070F14: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r1, 0x4 ldrsh r0, [r4, r1] ldr r1, _08070F70 lsls r2, r5, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08070F78 ldr r0, [r2, 0x10] cmp r0, 0 bne _08070F78 movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C adds r2, r0, 0 ldr r1, _08070F74 movs r0, 0x7 ands r0, r5 adds r0, r1 ldrb r1, [r2, 0xA] ldrb r0, [r0] ands r0, r1 cmp r0, 0 beq _08070F78 movs r0, 0x1 b _08070F7A .align 2, 0 _08070F70: .4byte gUnknown_80F4448 _08070F74: .4byte gUnknown_8106FBD _08070F78: movs r0, 0 _08070F7A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8070F14 thumb_func_start sub_8070F80 sub_8070F80: push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r0, [r4, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r5, r0, 24 movs r2, 0x4 ldrsh r0, [r4, r2] ldr r1, _08070FF4 lsls r2, r6, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08071050 ldr r0, [r2, 0x10] cmp r0, 0 beq _08070FCC bl sub_80450F8 cmp r0, 0x1 bne _08071050 _08070FCC: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08071020 ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08070FEE adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08070FF8 _08070FEE: movs r5, 0x3 b _08071020 .align 2, 0 _08070FF4: .4byte gUnknown_80F4448 _08070FF8: adds r0, r4, 0 movs r1, 0xC bl HasIQSkill lsls r0, 24 cmp r0, 0 bne _0807101E adds r0, r4, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08071020 movs r0, 0x1 ands r0, r6 movs r5, 0x3 cmp r0, 0 beq _08071020 _0807101E: movs r5, 0x2 _08071020: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA adds r1, r5 ldr r2, _0807104C movs r0, 0x7 ands r0, r6 adds r0, r2 ldrb r1, [r1] ldrb r0, [r0] ands r0, r1 cmp r0, 0 beq _08071050 movs r0, 0x1 b _08071052 .align 2, 0 _0807104C: .4byte gUnknown_8106FC5 _08071050: movs r0, 0 _08071052: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8070F80 thumb_func_start sub_8071058 sub_8071058: push {r4-r7,lr} adds r5, r0, 0 adds r7, r1, 0 ldr r0, [r5, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r6, r0, 24 movs r2, 0x4 ldrsh r0, [r5, r2] ldr r1, _080710D4 lsls r2, r7, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r5, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r4, r0, 0 ldrh r1, [r4] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08071130 ldr r0, [r4, 0x10] cmp r0, 0 beq _080710AE bl sub_80450F8 cmp r0, 0x1 beq _080710AE ldr r0, [r4, 0x10] ldr r0, [r0, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 bne _08071130 _080710AE: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08071100 ldr r0, [r5, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _080710D0 adds r0, r5, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080710D8 _080710D0: movs r6, 0x3 b _08071100 .align 2, 0 _080710D4: .4byte gUnknown_80F4448 _080710D8: adds r0, r5, 0 movs r1, 0xC bl HasIQSkill lsls r0, 24 cmp r0, 0 bne _080710FE adds r0, r5, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08071100 movs r0, 0x1 ands r0, r7 movs r6, 0x3 cmp r0, 0 beq _08071100 _080710FE: movs r6, 0x2 _08071100: movs r1, 0x4 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl sub_804954C adds r4, r0, 0 adds r1, r4, 0 adds r1, 0xA adds r1, r6 ldr r2, _0807112C movs r0, 0x7 ands r0, r7 adds r0, r2 ldrb r1, [r1] ldrb r0, [r0] ands r0, r1 cmp r0, 0 beq _08071130 movs r0, 0x1 b _08071132 .align 2, 0 _0807112C: .4byte gUnknown_8106FCD _08071130: movs r0, 0 _08071132: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8071058 thumb_func_start sub_8071138 sub_8071138: push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r0, [r4, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bhi _08071152 movs r5, 0x2 _08071152: movs r2, 0x4 ldrsh r0, [r4, r2] ldr r1, _080711B0 lsls r2, r6, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0807120C ldr r0, [r2, 0x10] cmp r0, 0 beq _0807118A bl sub_80450F8 cmp r0, 0x1 bne _0807120C _0807118A: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _080711DC ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _080711AC adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080711B4 _080711AC: movs r5, 0x3 b _080711DC .align 2, 0 _080711B0: .4byte gUnknown_80F4448 _080711B4: adds r0, r4, 0 movs r1, 0xC bl HasIQSkill lsls r0, 24 cmp r0, 0 bne _080711DA adds r0, r4, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _080711DC movs r0, 0x1 ands r0, r6 movs r5, 0x3 cmp r0, 0 beq _080711DC _080711DA: movs r5, 0x2 _080711DC: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA adds r1, r5 ldr r2, _08071208 movs r0, 0x7 ands r0, r6 adds r0, r2 ldrb r1, [r1] ldrb r0, [r0] ands r0, r1 cmp r0, 0 beq _0807120C movs r0, 0x1 b _0807120E .align 2, 0 _08071208: .4byte gUnknown_8106FD5 _0807120C: movs r0, 0 _0807120E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8071138 thumb_func_start sub_8071214 sub_8071214: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r7, r1, 0 mov r8, r2 ldr r0, [r4, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 mov r2, r8 strb r0, [r2] movs r3, 0x4 ldrsh r0, [r4, r3] ldr r1, _0807130C lsls r2, r7, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl sub_804954C adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08071260 b _0807137E _08071260: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08071286 ldr r0, _08071310 ldr r0, [r0] ldr r1, _08071314 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08071286 adds r0, r4, 0 movs r1, 0xF bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08071286 b _0807137E _08071286: ldr r0, [r5, 0x14] cmp r0, 0 beq _080712B8 adds r0, r4, 0 movs r1, 0xE bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _080712B8 ldr r0, [r5, 0x14] bl sub_80450F8 cmp r0, 0x2 bne _080712B8 ldr r0, [r5, 0x14] adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 bne _0807137E ldr r0, [r4, 0x70] adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x3 beq _0807137E _080712B8: ldrh r1, [r5] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _080712E6 ldr r1, _08071318 ldr r0, _08071310 ldr r0, [r0] ldr r2, _0807131C adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080712E6 adds r0, r4, 0 movs r1, 0x14 bl HasIQSkill lsls r0, 24 cmp r0, 0 bne _0807137E _080712E6: bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _08071348 ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08071308 adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08071320 _08071308: movs r6, 0x3 b _08071348 .align 2, 0 _0807130C: .4byte gUnknown_80F4448 _08071310: .4byte gDungeonGlobalData _08071314: .4byte 0x00000671 _08071318: .4byte gUnknown_810ACC0 _0807131C: .4byte 0x00003a0e _08071320: adds r0, r4, 0 movs r1, 0xC bl HasIQSkill lsls r0, 24 cmp r0, 0 bne _08071346 adds r0, r4, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08071348 movs r0, 0x1 ands r0, r7 movs r6, 0x3 cmp r0, 0 beq _08071348 _08071346: movs r6, 0x2 _08071348: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C adds r0, 0xA adds r0, r6 ldr r2, _08071374 movs r1, 0x7 ands r1, r7 adds r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, 0 beq _0807137E ldr r0, [r5, 0x10] cmp r0, 0 bne _08071378 movs r0, 0x1 b _08071380 .align 2, 0 _08071374: .4byte gUnknown_8106FDD _08071378: movs r0, 0x1 mov r3, r8 strb r0, [r3] _0807137E: movs r0, 0 _08071380: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8071214 thumb_func_start sub_807138C sub_807138C: push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x70] movs r1, 0x2 ldrsh r0, [r0, r1] bl sub_8070328 lsls r0, 24 lsrs r5, r0, 24 bl sub_80441E8 lsls r0, 24 cmp r0, 0 bne _080713E2 ldr r0, [r4, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _080713E0 adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _080713E0 adds r0, r4, 0 movs r1, 0xC bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _080713D2 movs r5, 0x2 b _080713E2 _080713D2: adds r0, r4, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _080713E2 _080713E0: movs r5, 0x3 _080713E2: cmp r5, 0x3 bne _08071408 ldr r4, [r4, 0x70] movs r0, 0x64 bl DungeonRandomCapped movs r1, 0xFD lsls r1, 1 adds r2, r4, r1 ldrh r1, [r2] adds r1, r0 strh r1, [r2] lsls r1, 16 asrs r1, 16 cmp r1, 0xC7 ble _08071458 movs r0, 0 strh r0, [r2] b _08071468 _08071408: ldr r1, _0807145C ldr r0, _08071460 ldr r0, [r0] ldr r2, _08071464 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _08071432 cmp r5, 0x1 bne _08071432 adds r0, r4, 0 movs r1, 0x14 bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08071432 movs r5, 0 _08071432: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C adds r0, 0xA adds r0, r5 ldrb r0, [r0] cmp r0, 0x54 beq _08071468 cmp r0, 0x51 beq _08071468 cmp r0, 0x45 beq _08071468 cmp r0, 0x15 beq _08071468 cmp r0, 0x55 beq _08071468 _08071458: movs r0, 0 b _0807146A .align 2, 0 _0807145C: .4byte gUnknown_810ACC0 _08071460: .4byte gDungeonGlobalData _08071464: .4byte 0x00003a0e _08071468: movs r0, 0x1 _0807146A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_807138C thumb_func_start sub_8071470 sub_8071470: push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 movs r1, 0x3 bl sub_80718AC lsls r0, 24 cmp r0, 0 beq _0807148A cmp r4, 0 beq _0807148A movs r0, 0x1 b _0807148C _0807148A: movs r0, 0 _0807148C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8071470 thumb_func_start sub_8071494 sub_8071494: push {r4,r5,lr} adds r5, r0, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0807150E ldr r4, [r5, 0x70] adds r0, r4, 0 adds r0, 0xFA ldrb r0, [r0] cmp r0, 0 bne _0807150A ldrb r0, [r4, 0x7] cmp r0, 0 bne _0807150E adds r0, r5, 0 movs r1, 0x2B bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _080714DC movs r2, 0 movs r1, 0x10 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 movs r3, 0xE ldrsh r1, [r4, r3] asrs r0, 1 cmp r1, r0 bge _080714D8 movs r2, 0x1 _080714D8: cmp r2, 0 bne _0807150A _080714DC: adds r0, r5, 0 movs r1, 0xA bl sub_80718AC lsls r0, 24 cmp r0, 0 bne _0807150A adds r0, r5, 0 movs r1, 0x6 bl sub_80718AC lsls r0, 24 cmp r0, 0 beq _0807150E movs r1, 0x10 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 movs r2, 0xE ldrsh r1, [r4, r2] asrs r0, 1 cmp r1, r0 bgt _0807150E _0807150A: movs r0, 0x1 b _08071510 _0807150E: movs r0, 0 _08071510: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8071494 thumb_func_start sub_8071518 sub_8071518: push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 bl sub_8071494 lsls r0, 24 cmp r0, 0 bne _0807152E movs r0, 0 b _08071538 _0807152E: adds r0, r4, 0 adds r1, r5, 0 bl sub_8071540 movs r0, 0x1 _08071538: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8071518 thumb_func_start sub_8071540 sub_8071540: push {r4-r7,lr} adds r5, r0, 0 lsls r1, 24 lsrs r7, r1, 24 ldr r4, [r5, 0x70] adds r6, r4, 0 ldrb r0, [r4, 0x7] cmp r0, 0 bne _08071590 adds r0, r5, 0 movs r1, 0x2B bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08071590 movs r2, 0 movs r1, 0x10 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 movs r3, 0xE ldrsh r1, [r4, r3] asrs r0, 1 cmp r1, r0 bgt _08071576 movs r2, 0x1 _08071576: adds r0, r6, 0 movs r1, 0x4 bl sub_8071ACC lsls r0, 24 lsrs r0, 24 cmp r7, 0 beq _08071590 cmp r0, 0 beq _08071590 adds r0, r5, 0 bl sub_8042910 _08071590: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8071540 thumb_func_start sub_8071598 sub_8071598: push {r4-r6,lr} adds r6, r0, 0 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 ldr r5, [r6, 0x70] ldr r4, [r1, 0x70] cmp r6, r1 bne _080715B0 movs r0, 0 b _08071670 _080715B0: ldrb r0, [r5, 0x8] cmp r0, 0x1 beq _08071606 ldrb r0, [r4, 0x8] cmp r0, 0x1 beq _08071606 adds r0, r5, 0 adds r0, 0xA4 ldrb r1, [r0] cmp r1, 0x4 beq _08071606 adds r0, r4, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x4 beq _08071606 cmp r1, 0x1 beq _08071606 cmp r0, 0x1 beq _08071606 cmp r3, 0 beq _080715EC ldrb r0, [r5, 0x6] cmp r0, 0 bne _080715EC adds r0, r4, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x6 beq _08071606 _080715EC: cmp r2, 0 bne _0807160A adds r0, r4, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 bne _0807160A adds r0, r6, 0 bl sub_8071884 lsls r0, 24 cmp r0, 0 bne _0807160A _08071606: movs r0, 0x2 b _08071670 _0807160A: movs r1, 0x80 lsls r1, 1 adds r0, r5, r1 ldrb r0, [r0] movs r6, 0 cmp r0, 0 beq _08071620 movs r6, 0x2 cmp r0, 0x1 bne _08071620 movs r6, 0x1 _08071620: ldrb r0, [r5, 0x8] cmp r0, 0 beq _08071630 movs r5, 0 cmp r0, 0x3 bne _08071638 movs r5, 0x1 b _08071638 _08071630: ldrb r1, [r5, 0x6] negs r0, r1 orrs r0, r1 lsrs r5, r0, 31 _08071638: ldrb r0, [r4, 0x8] cmp r0, 0 beq _08071648 movs r1, 0 cmp r0, 0x3 bne _08071650 movs r1, 0x1 b _08071650 _08071648: ldrb r1, [r4, 0x6] negs r0, r1 orrs r0, r1 lsrs r1, r0, 31 _08071650: movs r3, 0 adds r0, r4, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 bne _0807165E movs r3, 0x1 _0807165E: ldr r2, _08071678 lsls r0, r1, 1 adds r0, r3, r0 lsls r1, r5, 2 adds r0, r1 lsls r1, r6, 3 adds r0, r1 adds r0, r2 ldrb r0, [r0] _08071670: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08071678: .4byte gUnknown_8106FE5 thumb_func_end sub_8071598 thumb_func_start sub_807167C sub_807167C: push {lr} ldr r2, [r0, 0x70] ldr r1, [r1, 0x70] adds r0, r2, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _080716D2 adds r0, r2, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0807169A cmp r0, 0x47 bne _0807169E _0807169A: movs r0, 0x1 b _080716A0 _0807169E: movs r0, 0 _080716A0: cmp r0, 0 bne _080716D2 ldrb r0, [r2, 0x8] cmp r0, 0 bne _080716D2 adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _080716D2 adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _080716C2 cmp r0, 0x47 bne _080716C6 _080716C2: movs r0, 0x1 b _080716C8 _080716C6: movs r0, 0 _080716C8: cmp r0, 0 bne _080716D2 ldrb r0, [r1, 0x8] cmp r0, 0 beq _080716D6 _080716D2: movs r0, 0x2 b _080716E4 _080716D6: ldrb r0, [r2, 0x6] ldrb r1, [r1, 0x6] cmp r0, r1 bne _080716E2 movs r0, 0 b _080716E4 _080716E2: movs r0, 0x1 _080716E4: pop {r1} bx r1 thumb_func_end sub_807167C thumb_func_start sub_80716E8 sub_80716E8: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 ldr r0, [r4, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x2 bne _08071720 cmp r2, 0 beq _08071714 ldr r0, _08071718 movs r2, 0 bl SetMessageArgument ldr r0, _0807171C ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _08071714: movs r0, 0x1 b _08071722 .align 2, 0 _08071718: .4byte gAvailablePokemonNames _0807171C: .4byte gUnknown_80FC2FC _08071720: movs r0, 0 _08071722: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80716E8 thumb_func_start sub_8071728 sub_8071728: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 adds r5, r2, 0 ldr r0, [r4, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xE bne _08071758 cmp r2, 0 beq _0807178E ldr r0, _08071750 movs r2, 0 bl SetMessageArgument ldr r0, _08071754 b _08071784 .align 2, 0 _08071750: .4byte gAvailablePokemonNames _08071754: .4byte gUnknown_80FC31C _08071758: adds r0, r4, 0 movs r1, 0xF bl sub_8071824 lsls r0, 24 cmp r0, 0 bne _08071774 adds r0, r4, 0 movs r1, 0x18 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807179C _08071774: cmp r5, 0 beq _0807178E ldr r0, _08071794 adds r1, r4, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08071798 _08071784: ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _0807178E: movs r0, 0x1 b _0807179E .align 2, 0 _08071794: .4byte gAvailablePokemonNames _08071798: .4byte gUnknown_80FCEFC _0807179C: movs r0, 0 _0807179E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8071728 thumb_func_start sub_80717A4 sub_80717A4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldr r6, [r0, 0x70] adds r0, r6, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _080717CE cmp r0, 0x5 beq _080717CE cmp r0, 0x3 beq _080717CE b _08071816 _080717CA: movs r0, 0x1 b _08071818 _080717CE: movs r7, 0 movs r0, 0x8C lsls r0, 1 adds r4, r6, r0 adds r5, r4, 0 _080717D8: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0807180C ldrb r0, [r6, 0x7] cmp r0, 0 bne _080717F0 movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0807180C _080717F0: mov r0, r8 adds r1, r5, 0 movs r2, 0x1 bl sub_805744C lsls r0, 24 cmp r0, 0 beq _0807180C ldrb r0, [r4, 0x4] cmp r0, 0 beq _0807180C ldrh r0, [r4, 0x2] cmp r0, r9 beq _080717CA _0807180C: adds r4, 0x8 adds r5, 0x8 adds r7, 0x1 cmp r7, 0x3 ble _080717D8 _08071816: movs r0, 0 _08071818: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80717A4 thumb_func_start sub_8071824 sub_8071824: push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08071850 ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0x5E ldrb r0, [r0] cmp r0, r5 beq _0807184C adds r0, r1, 0 adds r0, 0x5F ldrb r0, [r0] cmp r0, r5 bne _08071850 _0807184C: movs r0, 0x1 b _08071852 _08071850: movs r0, 0 _08071852: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8071824 thumb_func_start sub_8071858 sub_8071858: push {lr} lsls r1, 24 lsrs r1, 24 adds r3, r1, 0 ldr r0, [r0, 0x70] adds r2, r0, 0 cmp r1, 0 beq _0807187A adds r0, 0x5C ldrb r0, [r0] cmp r0, r1 beq _0807187E adds r0, r2, 0 adds r0, 0x5D ldrb r0, [r0] cmp r0, r3 beq _0807187E _0807187A: movs r0, 0 b _08071880 _0807187E: movs r0, 0x1 _08071880: pop {r1} bx r1 thumb_func_end sub_8071858 thumb_func_start sub_8071884 sub_8071884: push {lr} adds r1, r0, 0 ldr r0, [r1, 0x70] adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0x3 beq _080718A4 adds r0, r1, 0 movs r1, 0x1A bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _080718A4 movs r0, 0 b _080718A6 _080718A4: movs r0, 0x1 _080718A6: pop {r1} bx r1 thumb_func_end sub_8071884 thumb_func_start sub_80718AC sub_80718AC: push {lr} lsls r1, 24 lsrs r1, 24 ldr r2, [r0, 0x70] ldrb r0, [r2, 0x7] cmp r0, 0 beq _080718C4 movs r0, 0 cmp r1, 0x1 bne _080718D4 movs r0, 0x1 b _080718D4 _080718C4: movs r3, 0 adds r0, r2, 0 adds r0, 0x94 ldrb r0, [r0] cmp r0, r1 bne _080718D2 movs r3, 0x1 _080718D2: adds r0, r3, 0 _080718D4: pop {r1} bx r1 thumb_func_end sub_80718AC thumb_func_start HasIQSkill HasIQSkill: push {lr} lsls r2, r1, 24 lsrs r2, 24 ldr r0, [r0, 0x70] adds r0, 0x90 movs r1, 0x1 lsls r1, r2 bl sub_808ECD0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end HasIQSkill thumb_func_start sub_80718F4 sub_80718F4: push {r4,lr} adds r4, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r2, 24 ldr r0, [r0, 0x70] adds r0, 0x90 movs r3, 0x1 adds r1, r3, 0 lsls r1, r4 lsls r3, r2 orrs r1, r3 bl sub_808ECD0 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 thumb_func_end sub_80718F4 thumb_func_start sub_807191C sub_807191C: push {r4-r6,lr} ldr r5, [r0, 0x70] ldrb r1, [r5, 0x6] cmp r1, 0 beq _08071978 adds r4, r5, 0 adds r4, 0x90 adds r0, r4, 0 movs r1, 0x8 bl sub_808EC30 adds r0, r4, 0 movs r1, 0x6 bl sub_808EC30 adds r0, r4, 0 movs r1, 0x2 bl sub_808EC30 adds r0, r5, 0 adds r0, 0xF7 ldrb r0, [r0] cmp r0, 0 beq _08071954 adds r0, r4, 0 movs r1, 0x12 bl sub_808EC30 _08071954: ldrb r0, [r5, 0x9] ldr r1, _08071974 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 blt _08071968 adds r0, r4, 0 movs r1, 0x16 bl sub_808EC30 _08071968: adds r1, r5, 0 adds r1, 0x94 movs r0, 0x2 strb r0, [r1] b _080719BE .align 2, 0 _08071974: .4byte gUnknown_80F59C4 _08071978: adds r0, r5, 0 adds r0, 0x90 strb r1, [r0] adds r2, r5, 0 adds r2, 0x91 strb r1, [r2] adds r2, 0x1 strb r1, [r2] movs r4, 0x1 adds r6, r0, 0 _0807198C: movs r1, 0xC ldrsh r0, [r5, r1] lsls r1, r4, 24 lsrs r1, 24 bl sub_808EB7C lsls r0, 24 cmp r0, 0 beq _080719B8 movs r1, 0x1 lsls r1, r4 adds r0, r5, 0 adds r0, 0x8C bl sub_808ECD0 lsls r0, 24 cmp r0, 0 beq _080719B8 adds r0, r6, 0 adds r1, r4, 0 bl sub_808EC30 _080719B8: adds r4, 0x1 cmp r4, 0x17 ble _0807198C _080719BE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_807191C thumb_func_start sub_80719C4 sub_80719C4: push {r4-r6,lr} adds r5, r0, 0 ldr r0, [r5, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 beq _080719D6 b _08071A0A _080719D2: movs r0, 0x1 b _08071A0C _080719D6: movs r6, 0 _080719D8: ldr r0, _08071A14 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08071A18 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08071A04 cmp r5, r4 beq _08071A04 adds r0, r5, 0 adds r1, r4, 0 bl CanSee lsls r0, 24 cmp r0, 0 bne _080719D2 _08071A04: adds r6, 0x1 cmp r6, 0x3 ble _080719D8 _08071A0A: movs r0, 0 _08071A0C: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08071A14: .4byte gDungeonGlobalData _08071A18: .4byte 0x0001357c thumb_func_end sub_80719C4 thumb_func_start sub_8071A1C sub_8071A1C: push {lr} adds r3, r0, 0 adds r2, r1, 0 ldrh r1, [r2, 0x2] movs r0, 0xA2 lsls r0, 1 cmp r1, r0 beq _08071A38 adds r0, r2, 0 bl sub_8092B00 lsls r0, 24 lsrs r0, 24 b _08071A3E _08071A38: ldr r0, [r3, 0x70] adds r0, 0x3E ldrb r0, [r0] _08071A3E: pop {r1} bx r1 thumb_func_end sub_8071A1C thumb_func_start sub_8071A44 sub_8071A44: push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 ldrh r1, [r4, 0x2] movs r0, 0xA2 lsls r0, 1 cmp r1, r0 beq _08071A60 adds r0, r4, 0 bl sub_8092BC0 ldrb r1, [r4, 0x5] adds r0, r1 b _08071A6A _08071A60: ldr r0, [r2, 0x70] movs r1, 0x3C ldrsh r0, [r0, r1] ldrb r4, [r4, 0x5] adds r0, r4 _08071A6A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8071A44 thumb_func_start sub_8071A70 sub_8071A70: push {lr} movs r1, 0x2 ldrsh r0, [r0, r1] bl IsToolboxEnabled lsls r0, 24 cmp r0, 0 beq _08071A84 movs r0, 0x1 b _08071A86 _08071A84: movs r0, 0 _08071A86: pop {r1} bx r1 thumb_func_end sub_8071A70 thumb_func_start sub_8071A8C sub_8071A8C: push {r4,lr} adds r4, r0, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08071AC2 ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _08071AC2 adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08071AB4 cmp r0, 0x47 bne _08071AB8 _08071AB4: movs r0, 0x1 b _08071ABA _08071AB8: movs r0, 0 _08071ABA: cmp r0, 0 bne _08071AC2 movs r0, 0x1 b _08071AC4 _08071AC2: movs r0, 0 _08071AC4: pop {r4} pop {r1} bx r1 thumb_func_end sub_8071A8C thumb_func_start sub_8071ACC sub_8071ACC: push {r4,r5,lr} adds r3, r0, 0 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 24 lsrs r5, r2, 24 movs r1, 0xA7 lsls r1, 1 adds r0, r3, r1 ldrh r0, [r0] ands r0, r4 cmp r0, 0 beq _08071AF6 movs r0, 0xA8 lsls r0, 1 adds r2, r3, r0 ldrh r1, [r2] adds r0, r4, 0 orrs r0, r1 strh r0, [r2] b _08071B02 _08071AF6: movs r0, 0xA8 lsls r0, 1 adds r1, r3, r0 ldrh r0, [r1] bics r0, r4 strh r0, [r1] _08071B02: cmp r5, 0 beq _08071B16 movs r1, 0xA7 lsls r1, 1 adds r2, r3, r1 ldrh r1, [r2] adds r0, r4, 0 orrs r0, r1 strh r0, [r2] b _08071B22 _08071B16: movs r0, 0xA7 lsls r0, 1 adds r1, r3, r0 ldrh r0, [r1] bics r0, r4 strh r0, [r1] _08071B22: movs r1, 0xA8 lsls r1, 1 adds r0, r3, r1 ldrh r0, [r0] ands r0, r4 cmp r0, 0 bne _08071B40 subs r1, 0x2 adds r0, r3, r1 ldrh r0, [r0] ands r0, r4 cmp r0, 0 beq _08071B40 movs r0, 0x1 b _08071B42 _08071B40: movs r0, 0 _08071B42: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8071ACC thumb_func_start sub_8071B48 sub_8071B48: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 movs r0, 0 mov r8, r0 ldr r0, _08071B94 ldr r6, [r0] ldr r1, _08071B98 adds r0, r6, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _08071B66 b _08071D3E _08071B66: subs r1, 0x20 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0x15 bne _08071B7C ldr r2, _08071B9C adds r0, r6, r2 ldrb r0, [r0] cmp r0, 0 beq _08071B7C b _08071D3E _08071B7C: ldr r0, _08071BA0 adds r1, r6, r0 ldrh r0, [r1] adds r2, r0, 0x1 strh r2, [r1] ldr r1, _08071BA4 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 bne _08071BAC ldr r0, _08071BA8 b _08071BAE .align 2, 0 _08071B94: .4byte gDungeonGlobalData _08071B98: .4byte 0x00000664 _08071B9C: .4byte 0x000037fd _08071BA0: .4byte 0x00000662 _08071BA4: .4byte 0x0000066e _08071BA8: .4byte gUnknown_80F4DAA _08071BAC: ldr r0, _08071C60 _08071BAE: lsls r1, r2, 16 asrs r1, 16 movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 bge _08071BBC b _08071D3E _08071BBC: ldr r1, _08071C64 adds r0, r6, r1 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0xE1 lsls r0, 2 cmp r1, r0 ble _08071BF6 ldr r1, _08071C68 adds r0, r6, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08071BF6 ldrh r0, [r4, 0x26] ldr r2, _08071C6C adds r1, r6, r2 ldr r1, [r1] cmp r0, r1 bne _08071BF6 ldr r0, _08071C70 adds r1, r4, 0 movs r2, 0 bl SetMessageArgument mov r8, r4 _08071BF6: ldr r1, _08071C64 adds r0, r6, r1 movs r1, 0 strh r1, [r0] ldr r2, _08071C68 adds r0, r6, r2 str r1, [r0] movs r7, 0 movs r5, 0 _08071C08: lsls r0, r5, 2 ldr r2, _08071C74 adds r1, r6, r2 adds r1, r0 ldr r4, [r1] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08071C3A movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_804954C ldrh r0, [r0] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 ands r0, r1 cmp r0, 0 bne _08071C3A adds r7, 0x1 _08071C3A: adds r5, 0x1 cmp r5, 0xF ble _08071C08 ldr r1, _08071C78 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 bne _08071C92 ldr r0, _08071C7C ldr r0, [r0] ldr r2, _08071C80 adds r0, r2 ldrb r0, [r0] cmp r0, 0xFF bne _08071C88 ldr r0, _08071C84 movs r1, 0 ldrsh r0, [r0, r1] b _08071C8E .align 2, 0 _08071C60: .4byte gUnknown_80F4DAC _08071C64: .4byte 0x00000662 _08071C68: .4byte 0x00017b34 _08071C6C: .4byte 0x00017b40 _08071C70: .4byte gAvailablePokemonNames _08071C74: .4byte 0x0001358c _08071C78: .4byte 0x0000066e _08071C7C: .4byte gDungeonGlobalData _08071C80: .4byte 0x00003a0c _08071C84: .4byte gUnknown_80F4DA6 _08071C88: ldr r0, _08071CB8 movs r2, 0 ldrsh r0, [r0, r2] _08071C8E: cmp r7, r0 bge _08071D3E _08071C92: mov r0, r8 cmp r0, 0 beq _08071CA8 ldr r0, _08071CBC ldr r1, [r0] movs r0, 0 bl sub_805239C mov r0, r8 bl sub_8042920 _08071CA8: ldr r1, _08071CC0 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 beq _08071CC4 movs r5, 0xBE lsls r5, 1 b _08071CCE .align 2, 0 _08071CB8: .4byte gUnknown_80F4DA8 _08071CBC: .4byte gUnknown_80FED68 _08071CC0: .4byte 0x0000066e _08071CC4: movs r0, 0 bl sub_803D970 lsls r0, 16 asrs r5, r0, 16 _08071CCE: adds r0, r5, 0 bl sub_803DA20 adds r4, r0, 0 cmp r4, 0 bne _08071CDC movs r4, 0x1 _08071CDC: adds r0, r5, 0 movs r1, 0 bl sub_806AA0C lsls r0, 24 cmp r0, 0 beq _08071D3E add r0, sp, 0xC bl sub_8083660 lsls r0, 24 cmp r0, 0 beq _08071D3E mov r0, sp movs r1, 0 strh r5, [r0] strh r4, [r0, 0x8] strb r1, [r0, 0x2] movs r0, 0x64 bl DungeonRandomCapped adds r4, r0, 0 ldr r0, _08071D24 ldr r0, [r0] ldr r2, _08071D28 adds r0, r2 ldrb r0, [r0] bl sub_8090168 lsls r0, 16 asrs r0, 16 cmp r4, r0 bge _08071D2C movs r0, 0x1 b _08071D2E .align 2, 0 _08071D24: .4byte gDungeonGlobalData _08071D28: .4byte 0x00000644 _08071D2C: movs r0, 0 _08071D2E: str r0, [sp, 0x4] mov r1, sp movs r0, 0 strb r0, [r1, 0x10] mov r0, sp movs r1, 0 bl sub_806B7F8 _08071D3E: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8071B48 thumb_func_start sub_8071D4C sub_8071D4C: push {lr} ldr r3, [r1, 0x70] ldrb r0, [r3, 0x9] cmp r0, 0x64 beq _08071D94 adds r0, r3, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08071D64 cmp r0, 0x47 bne _08071D68 _08071D64: movs r0, 0x1 b _08071D6A _08071D68: movs r0, 0 _08071D6A: cmp r0, 0 bne _08071D94 ldr r1, [r3, 0x18] adds r2, r1, r2 ldr r0, _08071D98 cmp r2, r0 ble _08071D7A ldr r2, _08071D9C _08071D7A: subs r2, r1 cmp r2, 0 beq _08071D94 movs r0, 0xFE lsls r0, 1 adds r1, r3, r0 ldr r0, [r1] adds r0, r2 str r0, [r1] ldr r0, _08071DA0 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xD] _08071D94: pop {r0} bx r0 .align 2, 0 _08071D98: .4byte 0x0098967e _08071D9C: .4byte 0x0098967f _08071DA0: .4byte gDungeonGlobalData thumb_func_end sub_8071D4C thumb_func_start sub_8071DA4 sub_8071DA4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xD4 str r0, [sp, 0xB4] ldr r2, _08071E44 ldr r1, [r2] ldrb r0, [r1, 0xD] cmp r0, 0 bne _08071DBE b _08071FE2 _08071DBE: movs r0, 0 strb r0, [r1, 0xD] ldr r0, [r2] ldrb r0, [r0, 0x10] cmp r0, 0 beq _08071DCC b _08071FE2 _08071DCC: ldr r0, [sp, 0xB4] bl EntityExists lsls r0, 24 cmp r0, 0 bne _08071DE2 mov r0, sp bl sub_80457DC mov r0, sp str r0, [sp, 0xB4] _08071DE2: movs r4, 0 _08071DE4: movs r5, 0 ldr r0, _08071E44 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _08071E48 adds r0, r2 adds r0, r1 ldr r0, [r0] mov r8, r0 movs r0, 0 str r0, [sp, 0xB8] movs r1, 0 movs r2, 0 str r1, [sp, 0xBC] str r2, [sp, 0xC0] movs r0, 0 movs r1, 0 str r0, [sp, 0xC4] str r1, [sp, 0xC8] adds r1, r4, 0x1 str r1, [sp, 0xCC] mov r2, r8 cmp r2, 0 bne _08071E16 b _08071FDA _08071E16: mov r0, r8 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08071E24 b _08071FDA _08071E24: mov r0, r8 ldr r6, [r0, 0x70] movs r1, 0xE ldrsh r0, [r6, r1] cmp r0, 0 bne _08071E32 b _08071FDA _08071E32: adds r1, r6, 0 adds r1, 0xF9 ldrb r0, [r1] cmp r0, 0 beq _08071E4C add r2, sp, 0xB8 ldrb r2, [r2] strb r2, [r1] b _08071FCA .align 2, 0 _08071E44: .4byte gDungeonGlobalData _08071E48: .4byte 0x000135cc _08071E4C: movs r1, 0xFE lsls r1, 1 adds r0, r6, r1 ldr r0, [r0] mov r10, r0 cmp r0, 0 beq _08071EB6 ldrb r0, [r6, 0x7] cmp r0, 0 beq _08071E68 ldrb r1, [r6, 0x9] add r0, sp, 0x74 bl sub_808EB48 _08071E68: movs r0, 0x10 ldrsh r2, [r6, r0] str r2, [sp, 0xB8] ldrb r1, [r6, 0x14] str r1, [sp, 0xBC] ldrb r2, [r6, 0x15] str r2, [sp, 0xC0] ldrb r0, [r6, 0x16] str r0, [sp, 0xC4] ldrb r1, [r6, 0x17] str r1, [sp, 0xC8] ldrb r0, [r6, 0x9] cmp r0, 0x64 beq _08071EB6 ldr r0, [r6, 0x18] add r0, r10 str r0, [r6, 0x18] mov r2, r10 ldr r0, _08071EE8 str r2, [r0] ldr r0, _08071EEC adds r1, r6, 0 movs r2, 0 bl sub_80708B4 ldr r0, _08071EF0 ldr r2, [r0] ldr r0, [sp, 0xB4] mov r1, r8 bl sub_80522F4 ldr r0, [sp, 0xB4] mov r1, r8 movs r2, 0x1 movs r3, 0x1 bl sub_80723D0 lsls r0, 24 lsrs r5, r0, 24 _08071EB6: ldr r1, _08071EF4 adds r0, r6, r1 ldrb r0, [r0] adds r4, 0x1 str r4, [sp, 0xCC] cmp r0, 0 beq _08071F3A movs r2, 0x2 ldrsh r0, [r6, r2] add r1, sp, 0x8C movs r2, 0 movs r3, 0 bl sub_808E400 adds r7, r0, 0 add r0, sp, 0x8C mov r9, r0 cmp r7, 0 beq _08071F38 adds r0, r7, 0 bl DungeonRandomCapped adds r4, r0, 0 movs r1, 0 b _08071F02 .align 2, 0 _08071EE8: .4byte gUnknown_202DE30 _08071EEC: .4byte gAvailablePokemonNames _08071EF0: .4byte gUnknown_80F9E64 _08071EF4: .4byte 0x00000149 _08071EF8: adds r4, 0x1 cmp r4, r7 blt _08071F00 movs r4, 0 _08071F00: adds r1, 0x1 _08071F02: cmp r1, r7 bge _08071F38 lsls r0, r4, 1 mov r2, r9 adds r5, r2, r0 movs r2, 0 ldrsh r0, [r5, r2] str r1, [sp, 0xD0] bl sub_803D930 lsls r0, 24 ldr r1, [sp, 0xD0] cmp r0, 0 beq _08071EF8 movs r2, 0 ldrsh r0, [r5, r2] bl sub_80687D0 ldr r1, [sp, 0xD0] cmp r0, 0 beq _08071EF8 movs r0, 0 ldrsh r2, [r5, r0] ldr r0, [sp, 0xB4] mov r1, r8 bl sub_8072B78 _08071F38: movs r5, 0 _08071F3A: cmp r5, 0 beq _08071F7A ldrb r0, [r6, 0x6] cmp r0, 0 bne _08071F7A movs r1, 0x10 ldrsh r0, [r6, r1] ldr r2, [sp, 0xB8] subs r0, r2 ldr r1, _08071FF4 str r0, [r1] ldrb r0, [r6, 0x14] ldr r2, [sp, 0xBC] subs r0, r2 str r0, [r1, 0x4] ldrb r0, [r6, 0x16] ldr r1, [sp, 0xC4] subs r0, r1 ldr r2, _08071FF4 str r0, [r2, 0x8] ldrb r0, [r6, 0x15] ldr r1, [sp, 0xC0] subs r0, r1 str r0, [r2, 0xC] ldrb r0, [r6, 0x17] ldr r2, [sp, 0xC8] subs r0, r2 ldr r1, _08071FF4 str r0, [r1, 0x10] mov r0, r8 bl sub_807218C _08071F7A: mov r2, r10 cmp r2, 0 beq _08071FCA ldrb r0, [r6, 0x7] cmp r0, 0 beq _08071FCA ldrb r1, [r6, 0x9] add r0, sp, 0x80 bl sub_808EB48 movs r4, 0 add r7, sp, 0x74 add r5, sp, 0x80 _08071F94: adds r0, r7, r4 ldrb r0, [r0] cmp r0, 0 bne _08071FC4 adds r0, r5, r4 ldrb r0, [r0] cmp r0, 0x1 bne _08071FC4 ldr r0, _08071FF8 mov r1, r8 movs r2, 0 bl SetMessageArgument lsls r1, r4, 24 lsrs r1, 24 ldr r0, _08071FFC bl CopyTacticsNameToBuffer ldr r0, _08072000 ldr r2, [r0] ldr r0, [sp, 0xB4] mov r1, r8 bl sub_80522F4 _08071FC4: adds r4, 0x1 cmp r4, 0xB ble _08071F94 _08071FCA: movs r1, 0xFE lsls r1, 1 adds r0, r6, r1 movs r1, 0 str r1, [r0] ldr r2, _08072004 adds r0, r6, r2 strb r1, [r0] _08071FDA: ldr r4, [sp, 0xCC] cmp r4, 0x13 bgt _08071FE2 b _08071DE4 _08071FE2: add sp, 0xD4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08071FF4: .4byte gUnknown_202DE30 _08071FF8: .4byte gAvailablePokemonNames _08071FFC: .4byte gUnknown_202DE58 _08072000: .4byte gUnknown_80FF730 _08072004: .4byte 0x00000149 thumb_func_end sub_8071DA4 thumb_func_start sub_8072008 sub_8072008: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 mov r9, r0 mov r8, r1 adds r4, r2, 0 ldr r0, [sp, 0x58] lsls r3, 24 lsrs r3, 24 mov r10, r3 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x24] mov r0, r8 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08072036 b _08072162 _08072036: movs r0, 0 str r0, [sp, 0x28] mov r1, r8 ldr r5, [r1, 0x70] ldrb r0, [r5, 0x7] cmp r0, 0 beq _0807204C add r0, sp, 0xC ldrb r1, [r5, 0x9] bl sub_808EB48 _0807204C: movs r0, 0x10 ldrsh r2, [r5, r0] str r2, [sp, 0x2C] ldrb r6, [r5, 0x14] ldrb r7, [r5, 0x15] ldrb r1, [r5, 0x16] str r1, [sp, 0x30] ldrb r2, [r5, 0x17] str r2, [sp, 0x34] adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0807206C cmp r0, 0x47 bne _08072070 _0807206C: movs r0, 0x1 b _08072072 _08072070: movs r0, 0 _08072072: cmp r0, 0 bne _080720E6 ldrb r0, [r5, 0x9] adds r2, r0, r4 cmp r2, 0x63 ble _08072080 movs r2, 0x64 _08072080: cmp r2, r0 beq _080720E6 movs r0, 0x2 ldrsh r1, [r5, r0] mov r0, sp bl GetPokemonLevelData ldr r0, [sp] str r0, [r5, 0x18] mov r0, r9 mov r1, r8 mov r2, r10 ldr r3, [sp, 0x24] bl sub_80723D0 ldr r1, [sp, 0x28] orrs r1, r0 lsls r0, r1, 24 lsrs r0, 24 str r0, [sp, 0x28] cmp r0, 0 beq _080720E6 ldrb r0, [r5, 0x6] cmp r0, 0 bne _080720E6 ldr r1, _08072174 movs r2, 0x10 ldrsh r0, [r5, r2] ldr r2, [sp, 0x2C] subs r0, r2 str r0, [r1] ldrb r0, [r5, 0x14] subs r0, r6 str r0, [r1, 0x4] ldrb r0, [r5, 0x16] ldr r2, [sp, 0x30] subs r0, r2 str r0, [r1, 0x8] ldrb r0, [r5, 0x15] subs r0, r7 str r0, [r1, 0xC] ldrb r0, [r5, 0x17] ldr r2, [sp, 0x34] subs r0, r2 str r0, [r1, 0x10] mov r0, r10 cmp r0, 0 beq _080720E6 mov r0, r8 bl sub_807218C _080720E6: ldrb r0, [r5, 0x7] cmp r0, 0 beq _08072130 add r4, sp, 0x18 ldrb r1, [r5, 0x9] adds r0, r4, 0 bl sub_808EB48 movs r6, 0 add r7, sp, 0xC _080720FA: adds r0, r7, r6 ldrb r0, [r0] cmp r0, 0 bne _0807212A adds r0, r4, r6 ldrb r0, [r0] cmp r0, 0x1 bne _0807212A ldr r0, _08072178 mov r1, r8 movs r2, 0 bl SetMessageArgument lsls r1, r6, 24 lsrs r1, 24 ldr r0, _0807217C bl CopyTacticsNameToBuffer ldr r0, _08072180 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 _0807212A: adds r6, 0x1 cmp r6, 0xB ble _080720FA _08072130: movs r1, 0xFE lsls r1, 1 adds r0, r5, r1 movs r1, 0 str r1, [r0] ldr r2, _08072184 adds r0, r5, r2 strb r1, [r0] ldr r0, [sp, 0x28] cmp r0, 0 bne _08072162 mov r1, r10 cmp r1, 0 beq _08072162 ldr r0, _08072178 mov r1, r8 movs r2, 0 bl SetMessageArgument ldr r0, _08072188 ldr r2, [r0] mov r0, r9 mov r1, r8 bl sub_80522F4 _08072162: add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08072174: .4byte gUnknown_202DE30 _08072178: .4byte gAvailablePokemonNames _0807217C: .4byte gUnknown_202DE58 _08072180: .4byte gUnknown_80FF730 _08072184: .4byte 0x00000149 _08072188: .4byte gUnknown_80F9B74 thumb_func_end sub_8072008 thumb_func_start sub_807218C sub_807218C: push {r4-r6,lr} sub sp, 0x190 adds r4, r0, 0 movs r6, 0 ldr r5, [r4, 0x70] movs r1, 0 bl sub_806A2BC ldr r0, _080721C8 adds r1, r5, 0 movs r2, 0 bl sub_80708B4 adds r0, r4, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 beq _08072200 movs r3, 0 movs r0, 0x2 ldrsh r1, [r5, r0] adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A bne _080721CC movs r1, 0xD2 lsls r1, 1 b _080721EC .align 2, 0 _080721C8: .4byte gAvailablePokemonNames _080721CC: cmp r0, 0x47 bne _080721D8 ldr r1, _080721D4 b _080721EC .align 2, 0 _080721D4: .4byte 0x000001a5 _080721D8: cmp r0, 0x41 bne _080721EC ldr r0, _080721F8 ldr r0, [r0] ldr r2, _080721FC adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _080721EC movs r3, 0x1 _080721EC: mov r0, sp movs r2, 0x3 bl sub_806A3D4 b _0807220A .align 2, 0 _080721F8: .4byte gDungeonGlobalData _080721FC: .4byte 0x0000065c _08072200: ldr r0, _08072308 ldr r1, [r0] mov r0, sp bl strcpy _0807220A: movs r0, 0 mov r1, sp movs r2, 0x1 bl PrintFieldMessage mov r0, sp movs r1, 0 strb r1, [r0] ldr r4, _0807230C ldr r0, [r4] cmp r0, 0 ble _0807222E ldr r0, _08072310 ldr r1, [r0] mov r0, sp bl strcat adds r6, 0x1 _0807222E: ldr r0, [r4, 0x4] cmp r0, 0 ble _0807225A ldr r0, _08072314 adds r1, r6, r0 ldrb r0, [r1] cmp r0, 0 beq _0807224E ldr r0, _08072318 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r1, [r1] mov r0, sp bl strcat _0807224E: ldr r0, _0807231C ldr r1, [r0] mov r0, sp bl strcat adds r6, 0x1 _0807225A: ldr r0, _0807230C ldr r0, [r0, 0x8] cmp r0, 0 ble _08072288 ldr r0, _08072314 adds r1, r6, r0 ldrb r0, [r1] cmp r0, 0 beq _0807227C ldr r0, _08072318 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r1, [r1] mov r0, sp bl strcat _0807227C: ldr r0, _08072320 ldr r1, [r0] mov r0, sp bl strcat adds r6, 0x1 _08072288: ldr r0, _0807230C ldr r0, [r0, 0xC] cmp r0, 0 ble _080722B6 ldr r0, _08072314 adds r1, r6, r0 ldrb r0, [r1] cmp r0, 0 beq _080722AA ldr r0, _08072318 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r1, [r1] mov r0, sp bl strcat _080722AA: ldr r0, _08072324 ldr r1, [r0] mov r0, sp bl strcat adds r6, 0x1 _080722B6: ldr r0, _0807230C ldr r0, [r0, 0x10] cmp r0, 0 ble _080722E2 ldr r0, _08072314 adds r1, r6, r0 ldrb r0, [r1] cmp r0, 0 beq _080722D8 ldr r0, _08072318 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r1, [r1] mov r0, sp bl strcat _080722D8: ldr r0, _08072328 ldr r1, [r0] mov r0, sp bl strcat _080722E2: mov r0, sp ldrb r0, [r0] cmp r0, 0 beq _080722F4 movs r0, 0 mov r1, sp movs r2, 0x1 bl PrintFieldMessage _080722F4: bl sub_8083600 movs r1, 0 bl sub_806A2BC add sp, 0x190 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08072308: .4byte gUnknown_80FCF18 _0807230C: .4byte gUnknown_202DE30 _08072310: .4byte gUnknown_80F9ACC _08072314: .4byte gUnknown_8107010 _08072318: .4byte gUnknown_8107018 _0807231C: .4byte gUnknown_80F9AEC _08072320: .4byte gUnknown_80F9B10 _08072324: .4byte gUnknown_80F9B34 _08072328: .4byte gUnknown_80F9B58 thumb_func_end sub_807218C thumb_func_start LevelDownTarget LevelDownTarget: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC mov r8, r0 adds r5, r1, 0 adds r7, r2, 0 adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080723B6 movs r6, 0 ldr r4, [r5, 0x70] adds r0, r4, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08072358 cmp r0, 0x47 bne _0807235C _08072358: movs r0, 0x1 b _0807235E _0807235C: movs r0, 0 _0807235E: cmp r0, 0 bne _0807238C ldrb r0, [r4, 0x9] subs r2, r0, r7 cmp r2, 0 bgt _0807236C movs r2, 0x1 _0807236C: cmp r2, r0 beq _0807238C movs r0, 0x2 ldrsh r1, [r4, r0] mov r0, sp bl GetPokemonLevelData ldr r0, [sp] str r0, [r4, 0x18] mov r0, r8 adds r1, r5, 0 bl sub_80725A4 orrs r6, r0 lsls r0, r6, 24 lsrs r6, r0, 24 _0807238C: movs r1, 0xFE lsls r1, 1 adds r0, r4, r1 movs r1, 0 str r1, [r0] ldr r2, _080723C4 adds r0, r4, r2 strb r1, [r0] cmp r6, 0 bne _080723B6 ldr r0, _080723C8 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument ldr r0, _080723CC ldr r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_80522F4 _080723B6: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080723C4: .4byte 0x00000149 _080723C8: .4byte gAvailablePokemonNames _080723CC: .4byte gUnknown_80F9B94 thumb_func_end LevelDownTarget thumb_func_start sub_80723D0 sub_80723D0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r0, [sp, 0xC] mov r10, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x10] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x14] movs r0, 0 str r0, [sp, 0x18] mov r0, r10 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08072422 mov r1, r10 ldr r5, [r1, 0x70] movs r0, 0x2 ldrsh r3, [r5, r0] str r3, [sp, 0x1C] ldr r1, [r5, 0x18] str r1, [sp, 0x20] adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08072418 cmp r0, 0x47 bne _0807241C _08072418: movs r0, 0x1 b _0807241E _0807241C: movs r0, 0 _0807241E: cmp r0, 0 beq _08072426 _08072422: movs r0, 0 b _08072576 _08072426: ldrb r0, [r5, 0x9] adds r0, 0x1 mov r8, r0 mov r9, sp b _0807255A _08072430: mov r3, r8 strb r3, [r5, 0x9] ldr r0, [sp, 0x20] str r0, [r5, 0x18] ldr r1, [sp, 0x10] cmp r1, 0 beq _080724A4 ldrb r0, [r5, 0x6] cmp r0, 0 bne _08072480 mov r0, r10 movs r1, 0 bl sub_806A2BC ldr r3, [sp, 0x18] cmp r3, 0 bne _08072456 bl sub_8083D58 _08072456: ldr r0, _08072474 mov r1, r8 str r1, [r0] ldr r0, _08072478 adds r1, r5, 0 movs r2, 0 bl sub_80708B4 ldr r0, _0807247C ldr r1, [r0] mov r0, r10 bl sub_80528F4 b _080724A4 .align 2, 0 _08072474: .4byte gUnknown_202DE30 _08072478: .4byte gAvailablePokemonNames _0807247C: .4byte gUnknown_80F9E80 _08072480: ldr r3, [sp, 0x18] cmp r3, 0 bne _0807248A bl sub_8083D58 _0807248A: ldr r0, _08072588 mov r1, r8 str r1, [r0] ldr r0, _0807258C adds r1, r5, 0 movs r2, 0 bl sub_80708B4 ldr r0, _08072590 ldr r1, [r0] mov r0, r10 bl sub_805239C _080724A4: movs r3, 0x1 str r3, [sp, 0x18] mov r1, r9 ldrh r0, [r1, 0x4] ldrh r3, [r5, 0x10] adds r0, r3 movs r2, 0 strh r0, [r5, 0x10] ldrh r1, [r1, 0x4] ldrh r3, [r5, 0xE] adds r1, r3 strh r1, [r5, 0xE] lsls r0, 16 ldr r1, _08072594 cmp r0, r1 ble _080724C8 ldr r0, _08072598 strh r0, [r5, 0x10] _080724C8: movs r0, 0xE ldrsh r1, [r5, r0] ldrh r2, [r5, 0x10] movs r3, 0x10 ldrsh r0, [r5, r3] cmp r1, r0 blt _080724D8 strh r2, [r5, 0xE] _080724D8: ldr r7, _0807259C ldrb r4, [r5, 0x14] str r4, [r7] ldrb r1, [r5, 0x15] str r1, [r7, 0x4] ldr r6, _080725A0 ldrb r2, [r5, 0x16] str r2, [r6] ldrb r0, [r5, 0x17] mov r12, r0 mov r3, r9 ldrb r0, [r3, 0x6] adds r4, r0 str r4, [r7] ldrb r0, [r3, 0x7] adds r1, r0 str r1, [r7, 0x4] ldrb r0, [r3, 0x8] adds r2, r0 str r2, [r6] ldrb r0, [r3, 0x9] mov r1, r12 adds r3, r1, r0 str r3, [r6, 0x4] cmp r4, 0xFE ble _08072510 movs r3, 0xFF str r3, [r7] _08072510: ldr r0, [r7, 0x4] cmp r0, 0xFE ble _0807251A movs r0, 0xFF str r0, [r7, 0x4] _0807251A: ldr r0, [r6] cmp r0, 0xFE ble _08072524 movs r1, 0xFF str r1, [r6] _08072524: ldr r0, [r6, 0x4] cmp r0, 0xFE ble _0807252E movs r3, 0xFF str r3, [r6, 0x4] _0807252E: mov r0, r10 bl sub_807191C mov r0, r10 bl sub_8079764 ldr r0, [r7] strb r0, [r5, 0x14] ldr r0, [r7, 0x4] strb r0, [r5, 0x15] ldr r0, [r6] strb r0, [r5, 0x16] ldr r0, [r6, 0x4] strb r0, [r5, 0x17] ldr r0, [sp, 0xC] mov r1, r10 ldr r2, [sp, 0x10] ldr r3, [sp, 0x14] bl sub_8072778 movs r0, 0x1 add r8, r0 _0807255A: mov r1, r8 cmp r1, 0x64 bgt _08072574 mov r0, sp ldr r1, [sp, 0x1C] mov r2, r8 bl GetPokemonLevelData ldr r0, [sp] ldr r3, [sp, 0x20] cmp r0, r3 bgt _08072574 b _08072430 _08072574: ldr r0, [sp, 0x18] _08072576: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08072588: .4byte gUnknown_202DE30 _0807258C: .4byte gAvailablePokemonNames _08072590: .4byte gUnknown_80F9E80 _08072594: .4byte 0x03e60000 _08072598: .4byte 0x000003e7 _0807259C: .4byte gUnknown_202F31C _080725A0: .4byte gUnknown_202F324 thumb_func_end sub_80723D0 thumb_func_start sub_80725A4 sub_80725A4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r0, [sp, 0xC] str r1, [sp, 0x10] adds r0, r1, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _080725C2 b _0807272E _080725C2: ldr r0, [sp, 0x10] ldr r5, [r0, 0x70] movs r2, 0x2 ldrsh r1, [r5, r2] str r1, [sp, 0x18] ldr r3, [r5, 0x18] str r3, [sp, 0x1C] ldrb r0, [r5, 0x9] str r0, [sp, 0x20] adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _080725E2 cmp r0, 0x47 bne _080725E6 _080725E2: movs r0, 0x1 b _080725E8 _080725E6: movs r0, 0 _080725E8: cmp r0, 0 beq _080725EE b _0807272E _080725EE: movs r1, 0x1 mov r8, r1 b _080725F8 _080725F4: movs r2, 0x1 add r8, r2 _080725F8: ldrb r3, [r5, 0x9] cmp r8, r3 bge _08072610 mov r0, sp ldr r1, [sp, 0x18] mov r2, r8 bl GetPokemonLevelData ldr r0, [sp] ldr r1, [sp, 0x1C] cmp r0, r1 blt _080725F4 _08072610: mov r2, r8 subs r2, 0x1 str r2, [sp, 0x14] ldrb r3, [r5, 0x9] mov r8, r3 cmp r8, r2 ble _08072710 mov r9, sp movs r0, 0x1 mov r10, r0 _08072624: mov r4, r8 adds r4, 0x1 mov r1, r8 cmp r1, 0x63 bgt _08072640 mov r0, sp ldr r1, [sp, 0x18] adds r2, r4, 0 bl GetPokemonLevelData ldr r0, [sp] subs r0, 0x1 str r0, [r5, 0x18] b _08072644 _08072640: ldr r2, [sp, 0x1C] str r2, [r5, 0x18] _08072644: ldr r3, [sp, 0x20] cmp r3, r8 ble _08072704 mov r0, sp ldr r1, [sp, 0x18] adds r2, r4, 0 bl GetPokemonLevelData mov r0, r8 strb r0, [r5, 0x9] ldrh r0, [r5, 0x10] mov r2, r9 ldrh r1, [r2, 0x4] subs r0, r1 strh r0, [r5, 0x10] ldrh r0, [r5, 0xE] ldrh r1, [r2, 0x4] subs r0, r1 strh r0, [r5, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bgt _08072676 mov r3, r10 strh r3, [r5, 0xE] _08072676: movs r1, 0x10 ldrsh r0, [r5, r1] cmp r0, 0x1 bgt _08072682 mov r2, r10 strh r2, [r5, 0x10] _08072682: movs r3, 0xE ldrsh r1, [r5, r3] ldrh r2, [r5, 0x10] movs r3, 0x10 ldrsh r0, [r5, r3] cmp r1, r0 blt _08072692 strh r2, [r5, 0xE] _08072692: ldr r7, _08072734 ldrb r4, [r5, 0x14] str r4, [r7] ldrb r1, [r5, 0x15] str r1, [r7, 0x4] ldr r6, _08072738 ldrb r2, [r5, 0x16] str r2, [r6] ldrb r0, [r5, 0x17] mov r12, r0 mov r3, r9 ldrb r0, [r3, 0x6] subs r4, r0 str r4, [r7] ldrb r0, [r3, 0x7] subs r1, r0 str r1, [r7, 0x4] ldrb r0, [r3, 0x8] subs r2, r0 str r2, [r6] ldrb r0, [r3, 0x9] mov r1, r12 subs r3, r1, r0 str r3, [r6, 0x4] cmp r4, 0x1 bgt _080726CA mov r2, r10 str r2, [r7] _080726CA: ldr r0, [r7, 0x4] cmp r0, 0x1 bgt _080726D4 mov r3, r10 str r3, [r7, 0x4] _080726D4: ldr r0, [r6] cmp r0, 0x1 bgt _080726DE mov r0, r10 str r0, [r6] _080726DE: ldr r0, [r6, 0x4] cmp r0, 0x1 bgt _080726E8 mov r1, r10 str r1, [r6, 0x4] _080726E8: ldr r0, [sp, 0x10] bl sub_807191C ldr r0, [sp, 0x10] bl sub_8079764 ldr r0, [r7] strb r0, [r5, 0x14] ldr r0, [r7, 0x4] strb r0, [r5, 0x15] ldr r0, [r6] strb r0, [r5, 0x16] ldr r0, [r6, 0x4] strb r0, [r5, 0x17] _08072704: movs r2, 0x1 negs r2, r2 add r8, r2 ldr r3, [sp, 0x14] cmp r8, r3 bgt _08072624 _08072710: ldr r0, _0807273C adds r1, r5, 0 movs r2, 0 bl sub_80708B4 ldrb r1, [r5, 0x9] ldr r0, [sp, 0x20] cmp r1, r0 bne _08072744 ldr r0, _08072740 ldr r2, [r0] ldr r0, [sp, 0xC] ldr r1, [sp, 0x10] bl sub_80522F4 _0807272E: movs r0, 0 b _08072760 .align 2, 0 _08072734: .4byte gUnknown_202F31C _08072738: .4byte gUnknown_202F324 _0807273C: .4byte gAvailablePokemonNames _08072740: .4byte gUnknown_80F9EEC _08072744: ldr r0, _08072770 str r1, [r0] movs r1, 0xD3 lsls r1, 1 ldr r0, [sp, 0x10] bl sub_80421C0 ldr r0, _08072774 ldr r2, [r0] ldr r0, [sp, 0xC] ldr r1, [sp, 0x10] bl sub_80522F4 movs r0, 0x1 _08072760: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08072770: .4byte gUnknown_202DE30 _08072774: .4byte gUnknown_80F9EC8 thumb_func_end sub_80725A4 thumb_func_start sub_8072778 sub_8072778: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xD0 mov r9, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0xC4] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC8] ldr r0, [r1, 0x70] mov r8, r0 movs r1, 0 str r1, [sp, 0xCC] ldrb r0, [r0, 0x6] cmp r0, 0 beq _080727A8 movs r2, 0 str r2, [sp, 0xC8] movs r4, 0 str r4, [sp, 0xC4] _080727A8: mov r0, r8 movs r2, 0x2 ldrsh r1, [r0, r2] ldrb r2, [r0, 0x9] movs r4, 0xC ldrsh r3, [r0, r4] mov r0, sp bl sub_808E0AC adds r7, r0, 0 add r4, sp, 0x20 movs r1, 0x8C lsls r1, 1 add r1, r8 adds r0, r4, 0 bl sub_8093FC8 mov r10, r4 cmp r7, 0 beq _08072810 adds r0, r7, 0 bl DungeonRandomCapped movs r2, 0 lsls r0, 1 mov r1, sp adds r6, r1, r0 mov r5, sp adds r5, 0x21 mov r3, r10 _080727E4: lsls r0, r2, 3 add r0, sp adds r0, 0x20 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08072806 ldrh r1, [r6] adds r0, r3, 0 bl sub_8092A88 ldrb r1, [r5] movs r0, 0x4 orrs r0, r1 strb r0, [r5] b _08072810 _08072806: adds r5, 0x8 adds r3, 0x8 adds r2, 0x1 cmp r2, 0x7 ble _080727E4 _08072810: movs r5, 0 movs r4, 0x1 _08072814: movs r7, 0 movs r2, 0 _08072818: lsls r0, r2, 3 add r0, sp adds r0, 0x20 ldrb r1, [r0] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0807282A adds r7, 0x1 _0807282A: adds r2, 0x1 cmp r2, 0x7 ble _08072818 cmp r7, 0x4 bgt _080728D4 movs r3, 0 movs r5, 0 cmp r3, r7 bge _0807287C movs r4, 0x8C lsls r4, 1 add r4, r8 mov r6, r10 _08072844: lsls r0, r5, 3 movs r2, 0x8C lsls r2, 1 add r2, r8 adds r2, r0 ldr r0, [r6] ldr r1, [r6, 0x4] str r0, [r2] str r1, [r2, 0x4] ldrb r1, [r4, 0x1] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08072872 movs r0, 0xFB ands r0, r1 strb r0, [r4, 0x1] add r0, sp, 0x60 adds r1, r4, 0 movs r2, 0 bl sub_80928C0 movs r3, 0x1 _08072872: adds r4, 0x8 adds r6, 0x8 adds r5, 0x1 cmp r5, r7 blt _08072844 _0807287C: cmp r5, 0x3 bgt _08072894 movs r2, 0x8C lsls r2, 1 movs r1, 0 _08072886: lsls r0, r5, 3 add r0, r8 adds r0, r2 strb r1, [r0] adds r5, 0x1 cmp r5, 0x3 ble _08072886 _08072894: cmp r3, 0 beq _08072928 ldr r2, [sp, 0xC4] cmp r2, 0 beq _08072928 ldr r0, _080728C8 mov r1, r8 movs r2, 0 bl sub_80708B4 ldr r0, _080728CC add r1, sp, 0x60 bl strcpy mov r0, r9 movs r1, 0x9C lsls r1, 1 bl sub_80421C0 ldr r0, _080728D0 ldr r1, [r0] mov r0, r9 bl sub_80528F4 b _08072928 .align 2, 0 _080728C8: .4byte gAvailablePokemonNames _080728CC: .4byte gUnknown_202DE58 _080728D0: .4byte gUnknown_80F9F04 _080728D4: mov r1, r8 ldrb r0, [r1, 0x6] cmp r0, 0 bne _08072918 ldr r2, [sp, 0xC8] cmp r2, 0 beq _08072918 ldr r0, [sp, 0xCC] cmp r0, 0 bne _08072902 ldr r1, [sp, 0xC4] cmp r1, 0 beq _08072902 movs r0, 0xA movs r1, 0x6 bl sub_803E708 ldr r0, _08072914 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08072902: movs r2, 0x1 str r2, [sp, 0xCC] mov r0, r9 mov r1, r10 movs r3, 0 bl sub_8063E70 b _08072920 .align 2, 0 _08072914: .4byte gUnknown_80F9FA4 _08072918: mov r0, r9 mov r1, r10 bl sub_8072B24 _08072920: adds r5, 0x1 cmp r5, 0x1D bgt _08072928 b _08072814 _08072928: add sp, 0xD0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8072778 thumb_func_start sub_8072938 sub_8072938: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xA4 mov r9, r0 lsls r1, 16 lsrs r5, r1, 16 ldr r0, [r0, 0x70] mov r8, r0 movs r1, 0 mov r10, r1 movs r1, 0x8C lsls r1, 1 add r1, r8 mov r0, sp bl sub_8093FC8 movs r3, 0 mov r4, sp mov r2, sp _08072964: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08072980 adds r0, r2, 0 adds r1, r5, 0 bl sub_8092A88 ldrb r1, [r4, 0x1] movs r0, 0x4 orrs r0, r1 strb r0, [r4, 0x1] b _0807298A _08072980: adds r4, 0x8 adds r2, 0x8 adds r3, 0x1 cmp r3, 0x7 ble _08072964 _0807298A: movs r4, 0 movs r5, 0x1 _0807298E: movs r7, 0 mov r2, sp movs r3, 0x7 _08072994: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080729A0 adds r7, 0x1 _080729A0: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08072994 cmp r7, 0x4 bgt _08072A50 movs r5, 0 cmp r5, r7 bge _080729F4 movs r4, 0x8C lsls r4, 1 add r4, r8 mov r6, sp _080729BA: lsls r0, r5, 3 movs r2, 0x8C lsls r2, 1 add r2, r8 adds r2, r0 ldr r0, [r6] ldr r1, [r6, 0x4] str r0, [r2] str r1, [r2, 0x4] ldrb r1, [r4, 0x1] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080729EA movs r0, 0xFB ands r0, r1 strb r0, [r4, 0x1] add r0, sp, 0x40 adds r1, r4, 0 movs r2, 0 bl sub_80928C0 movs r0, 0x1 mov r10, r0 _080729EA: adds r4, 0x8 adds r6, 0x8 adds r5, 0x1 cmp r5, r7 blt _080729BA _080729F4: cmp r5, 0x3 bgt _08072A0C movs r2, 0x8C lsls r2, 1 movs r1, 0 _080729FE: lsls r0, r5, 3 add r0, r8 adds r0, r2 strb r1, [r0] adds r5, 0x1 cmp r5, 0x3 ble _080729FE _08072A0C: mov r1, r10 cmp r1, 0 beq _08072A92 mov r1, r8 ldrb r0, [r1, 0x6] cmp r0, 0 bne _08072A8C ldr r0, _08072A44 mov r1, r9 movs r2, 0 bl SetMessageArgument ldr r0, _08072A48 add r1, sp, 0x40 bl strcpy mov r0, r9 movs r1, 0x9C lsls r1, 1 bl sub_80421C0 ldr r0, _08072A4C ldr r1, [r0] mov r0, r9 bl sub_80528F4 b _08072A8C .align 2, 0 _08072A44: .4byte gAvailablePokemonNames _08072A48: .4byte gUnknown_202DE58 _08072A4C: .4byte gUnknown_80F9F04 _08072A50: movs r0, 0 mov r10, r0 mov r1, r8 ldrb r0, [r1, 0x6] cmp r0, 0 bne _08072A84 ldr r0, _08072A80 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage mov r0, r9 mov r1, sp movs r2, 0x1 movs r3, 0x1 bl sub_8063E70 lsls r0, 24 cmp r0, 0 bne _08072A84 movs r0, 0 b _08072AB0 .align 2, 0 _08072A80: .4byte gUnknown_80FDF40 _08072A84: adds r4, 0x1 cmp r4, 0x1D bgt _08072A8C b _0807298E _08072A8C: mov r0, r10 cmp r0, 0 bne _08072AAE _08072A92: mov r1, r8 ldrb r0, [r1, 0x6] cmp r0, 0 bne _08072AAE ldr r0, _08072AC0 mov r1, r9 movs r2, 0 bl SetMessageArgument ldr r0, _08072AC4 ldr r1, [r0] mov r0, r9 bl sub_80528F4 _08072AAE: movs r0, 0x1 _08072AB0: add sp, 0xA4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08072AC0: .4byte gAvailablePokemonNames _08072AC4: .4byte gUnknown_80F9F2C thumb_func_end sub_8072938 thumb_func_start sub_8072AC8 sub_8072AC8: push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 adds r7, r2, 0 lsls r1, 16 asrs r0, r1, 16 movs r3, 0 adds r2, r6, 0x6 _08072AD8: strh r3, [r2] subs r2, 0x2 cmp r2, r6 bge _08072AD8 movs r5, 0 bl sub_8092B18 adds r4, r0, 0 b _08072B04 _08072AEA: cmp r5, 0x4 bne _08072AF6 movs r0, 0x4 bl DungeonRandomCapped b _08072AFA _08072AF6: adds r0, r5, 0 adds r5, 0x1 _08072AFA: lsls r0, 1 adds r0, r6 mov r1, sp ldrh r1, [r1] strh r1, [r0] _08072B04: ldrb r0, [r4] cmp r0, 0 beq _08072B1C adds r0, r4, 0 mov r1, sp bl sub_808E07C adds r4, r0, 0 ldrb r0, [r4] adds r4, 0x1 cmp r0, r7 ble _08072AEA _08072B1C: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8072AC8 thumb_func_start sub_8072B24 sub_8072B24: push {r4-r7,lr} adds r5, r1, 0 movs r4, 0 movs r7, 0x1 movs r6, 0xFD adds r2, r5, 0 movs r3, 0x7 _08072B32: ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08072B44 adds r0, r6, 0 ands r0, r1 strb r0, [r2] adds r4, 0x1 _08072B44: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08072B32 adds r0, r4, 0 bl DungeonRandomCapped adds r3, r0, 0 adds r4, r5, 0 adds r4, 0x38 cmp r3, 0x6 bgt _08072B6C lsls r0, r3, 3 adds r2, r0, r5 _08072B60: ldr r0, [r2, 0x8] ldr r1, [r2, 0xC] stm r2!, {r0,r1} adds r3, 0x1 cmp r3, 0x6 ble _08072B60 _08072B6C: movs r0, 0 strb r0, [r4] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8072B24 thumb_func_start sub_8072B78 sub_8072B78: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x20 mov r8, r0 adds r7, r1, 0 lsls r5, r2, 16 asrs r5, 16 ldr r6, [r7, 0x70] ldr r4, _08072BFC adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl sub_80708B4 adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 bl CopyCyanSpeciesNametoBuffer adds r0, r5, 0 bl sub_80687D0 adds r4, r0, 0 lsls r0, r5, 16 lsrs r0, 16 strh r0, [r6, 0x4] strh r0, [r6, 0x2] ldrb r2, [r6, 0x9] mov r0, sp adds r1, r5, 0 bl GetPokemonLevelData ldr r0, [sp] str r0, [r6, 0x18] str r4, [r7, 0x64] adds r0, r6, 0 movs r1, 0 bl sub_806BFC0 adds r0, r7, 0 bl sub_8069E0C adds r0, r7, 0 movs r1, 0x7 bl sub_806CCB4 ldr r0, _08072C00 ldr r2, [r0] mov r0, r8 adds r1, r7, 0 bl sub_80522F4 adds r0, r7, 0 bl sub_8042A44 bl sub_8083D78 movs r0, 0x9E lsls r0, 1 cmp r5, r0 bne _08072C74 movs r5, 0 ldr r4, _08072C04 b _08072C0C .align 2, 0 _08072BFC: .4byte gAvailablePokemonNames _08072C00: .4byte gUnknown_80FE2EC _08072C04: .4byte gUnknown_80F4448 _08072C08: adds r4, 0x4 adds r5, 0x1 _08072C0C: cmp r5, 0x7 bgt _08072C36 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r7, r2] adds r0, r1 movs r3, 0x2 ldrsh r1, [r4, r3] movs r3, 0x6 ldrsh r2, [r7, r3] adds r1, r2 bl sub_804954C adds r1, r0, 0 ldr r0, _08072C80 bl sub_807034C lsls r0, 24 cmp r0, 0 bne _08072C08 _08072C36: ldr r0, _08072C80 mov r8, r0 bl sub_803D930 lsls r0, 24 cmp r0, 0 beq _08072C74 add r0, sp, 0xC movs r3, 0 movs r4, 0 mov r1, r8 strh r1, [r0] ldrb r1, [r6, 0x9] strh r1, [r0, 0x8] strb r3, [r0, 0x2] ldr r1, _08072C84 lsls r2, r5, 2 adds r2, r1 ldrh r1, [r7, 0x4] ldrh r5, [r2] adds r1, r5 strh r1, [r0, 0xC] ldrh r1, [r7, 0x6] ldrh r2, [r2, 0x2] adds r1, r2 strh r1, [r0, 0xE] str r4, [r0, 0x4] strb r3, [r0, 0x10] movs r1, 0x1 bl sub_806B7F8 _08072C74: add sp, 0x20 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08072C80: .4byte 0x0000013d _08072C84: .4byte gUnknown_80F4448 thumb_func_end sub_8072B78 thumb_func_start sub_8072C88 sub_8072C88: push {lr} ldr r1, [r0, 0x70] ldrb r0, [r1, 0x6] cmp r0, 0 bne _08072CA2 adds r0, r1, 0 adds r0, 0x94 ldrb r0, [r0] bl sub_808EAFC lsls r0, 24 lsrs r0, 24 b _08072CA4 _08072CA2: movs r0, 0 _08072CA4: pop {r1} bx r1 thumb_func_end sub_8072C88 thumb_func_start sub_8072CA8 sub_8072CA8: push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 bne _08072CEC bl sub_8083600 adds r4, r0, 0 cmp r4, 0 beq _08072CEC ldr r0, [r4, 0x70] adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x2 beq _08072CEC adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_8071598 lsls r0, 24 cmp r0, 0 bne _08072CEC adds r0, r5, 0 adds r1, r4, 0 bl sub_8045A00 lsls r0, 24 cmp r0, 0 beq _08072CEC adds r0, r4, 0 b _08072CEE _08072CEC: movs r0, 0 _08072CEE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8072CA8 thumb_func_start sub_8072CF4 sub_8072CF4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 movs r0, 0x1 bl sub_804178C ldr r1, _08072D4C movs r0, 0x1 strb r0, [r1] ldr r6, [r4, 0x70] adds r0, r6, 0 adds r0, 0xFC movs r1, 0 strb r1, [r0] subs r0, 0x9 strb r1, [r0] ldr r0, _08072D50 ldr r0, [r0] adds r0, 0xB8 str r4, [r0] ldr r2, _08072D54 adds r0, r6, 0 adds r0, 0x44 ldrh r0, [r0] lsls r1, r0, 1 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _08072D64 ldrb r0, [r6, 0x7] cmp r0, 0 beq _08072D58 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r1, [r0] adds r0, r4, 0 bl sub_805EFB4 b _08072D64 .align 2, 0 _08072D4C: .4byte gUnknown_203B434 _08072D50: .4byte gDungeonGlobalData _08072D54: .4byte gUnknown_80F58F4 _08072D58: adds r0, r2, 0x1 adds r0, r1, r0 ldrb r1, [r0] adds r0, r4, 0 bl sub_8075BA4 _08072D64: adds r0, r4, 0 movs r1, 0 bl sub_8070D04 lsls r0, 24 cmp r0, 0 beq _08072D86 adds r0, r4, 0 movs r1, 0x1 bl sub_80570F4 lsls r0, 24 cmp r0, 0 beq _08072D86 adds r0, r4, 0 bl sub_8079764 _08072D86: movs r7, 0x1 movs r5, 0xFB movs r0, 0x8C lsls r0, 1 adds r2, r6, r0 movs r3, 0x3 _08072D92: ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08072DA4 ldrb r1, [r2, 0x1] adds r0, r5, 0 ands r0, r1 strb r0, [r2, 0x1] _08072DA4: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08072D92 adds r0, r4, 0 movs r1, 0 bl sub_8045028 lsls r0, 24 cmp r0, 0 bne _08072E08 adds r0, r4, 0 bl sub_807520C lsls r0, 24 cmp r0, 0 beq _08072DF0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08072DD2 b _080732D4 _08072DD2: adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08072DE0 b _080732D4 _08072DE0: ldr r0, _08072DEC ldrb r0, [r0] cmp r0, 0 beq _08072DF0 movs r0, 0x1 b _080732D6 .align 2, 0 _08072DEC: .4byte gUnknown_202F32D _08072DF0: ldrb r0, [r6, 0x7] cmp r0, 0 bne _08072DFC movs r0, 0xA bl sub_8052740 _08072DFC: adds r0, r4, 0 bl sub_806A1E8 movs r0, 0xA bl sub_803E46C _08072E08: adds r0, r6, 0 adds r0, 0x44 ldrh r1, [r0] adds r5, r0, 0 cmp r1, 0x1 bls _08072E26 cmp r1, 0x4 beq _08072E26 cmp r1, 0x2 beq _08072E26 movs r2, 0xA4 lsls r2, 1 adds r1, r6, r2 movs r0, 0x1 strb r0, [r1] _08072E26: movs r3, 0 mov r10, r3 movs r7, 0xA5 lsls r7, 1 adds r0, r6, r7 mov r1, r10 strb r1, [r0] ldr r0, _08072E50 strb r1, [r0] ldr r0, _08072E54 strb r1, [r0] ldrh r0, [r5] subs r0, 0x2 cmp r0, 0x3F bls _08072E46 b _080731B4 _08072E46: lsls r0, 2 ldr r1, _08072E58 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08072E50: .4byte gUnknown_202F221 _08072E54: .4byte gUnknown_202F222 _08072E58: .4byte _08072E5C .align 2, 0 _08072E5C: .4byte _08072F5C .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _08073104 .4byte _080730A4 .4byte _0807310C .4byte _0807311C .4byte _080731B4 .4byte _08073094 .4byte _08073094 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _08073094 .4byte _0807314C .4byte _08073154 .4byte _0807303E .4byte _080731B4 .4byte _0807315C .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _08073186 .4byte _0807318E .4byte _08073170 .4byte _08073046 .4byte _0807311C .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _0807309C .4byte _08073162 .4byte _080731B4 .4byte _080731B4 .4byte _080731B4 .4byte _080730AC .4byte _080730B4 .4byte _080730C4 .4byte _08073196 .4byte _08073114 .4byte _080730E0 .4byte _080730CC .4byte _080730D6 .4byte _080730BC .4byte _0807317E .4byte _080731B4 .4byte _0807311C _08072F5C: adds r0, r6, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x2 beq _08072F76 cmp r0, 0x7 beq _08072F76 cmp r0, 0x5 beq _08072F76 cmp r0, 0x3 beq _08072F76 cmp r0, 0x4 bne _08072F84 _08072F76: movs r0, 0 strh r0, [r5] ldr r2, _08072F80 adds r1, r6, r2 b _08072FDA .align 2, 0 _08072F80: .4byte 0x00000147 _08072F84: movs r3, 0 mov r9, r3 ldr r1, _08072FE0 adds r2, r6, 0 adds r2, 0x46 ldrb r3, [r2] lsls r0, r3, 2 adds r0, r1 ldrh r1, [r0] ldrh r7, [r4, 0x4] adds r1, r7 lsls r1, 16 ldrh r0, [r0, 0x2] ldrh r7, [r4, 0x6] adds r0, r7 lsls r0, 16 lsrs r1, 16 mov r8, r1 orrs r1, r0 mov r8, r1 ldrh r1, [r6] movs r0, 0x80 lsls r0, 8 ands r0, r1 adds r7, r2, 0 cmp r0, 0 bne _08072FCC adds r0, r4, 0 adds r1, r3, 0 bl sub_8070D6C lsls r0, 24 cmp r0, 0 bne _08072FCC movs r2, 0x1 mov r9, r2 _08072FCC: mov r3, r9 cmp r3, 0 beq _08072FE8 movs r0, 0 strh r0, [r5] ldr r7, _08072FE4 adds r1, r6, r7 _08072FDA: movs r0, 0x1 strb r0, [r1] b _080731B8 .align 2, 0 _08072FE0: .4byte gUnknown_80F4448 _08072FE4: .4byte 0x00000147 _08072FE8: ldrh r1, [r4, 0x6] lsls r1, 16 ldrh r0, [r4, 0x4] orrs r0, r1 str r0, [sp] mov r0, r8 lsls r1, r0, 16 asrs r1, 16 asrs r2, r0, 16 adds r0, r4, 0 movs r3, 0 bl sub_80694C0 ldrb r1, [r7] adds r0, r4, 0 mov r2, sp bl sub_8074FB0 adds r0, r4, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08073038 adds r0, r6, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08073038 adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _08073038 adds r0, r4, 0x4 bl sub_804AE08 _08073038: movs r1, 0x1 mov r10, r1 b _080731B8 _0807303E: adds r0, r4, 0 bl sub_807CABC b _080731B8 _08073046: ldr r0, _08073064 ldr r1, [r0] ldr r2, _08073068 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x15 bne _08073074 ldr r3, _0807306C adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _08073074 ldr r0, _08073070 b _080731A2 .align 2, 0 _08073064: .4byte gDungeonGlobalData _08073068: .4byte 0x00000644 _0807306C: .4byte 0x000037fe _08073070: .4byte gUnknown_80FA5B4 _08073074: bl sub_804267C ldr r0, _0807308C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x2] ldr r1, _08073090 adds r0, r6, 0 adds r0, 0x46 ldrb r0, [r0] strb r0, [r1] b _080731B8 .align 2, 0 _0807308C: .4byte gDungeonGlobalData _08073090: .4byte gUnknown_202F32C _08073094: adds r0, r4, 0 bl sub_8067110 b _080731B8 _0807309C: adds r0, r4, 0 bl sub_807CB3C b _080731B8 _080730A4: adds r0, r4, 0 bl sub_8066744 b _080731B8 _080730AC: adds r0, r4, 0 bl sub_80668D0 b _080731B8 _080730B4: adds r0, r4, 0 bl sub_8066AC0 b _080731B8 _080730BC: adds r0, r4, 0 bl sub_8066BD4 b _080731B8 _080730C4: adds r0, r4, 0 bl sub_8066CF0 b _080731B8 _080730CC: adds r0, r4, 0 movs r1, 0x1 bl sub_806675C b _080731B8 _080730D6: adds r0, r4, 0 movs r1, 0x1 bl sub_806684C b _080731B8 _080730E0: ldr r0, _080730FC ldr r1, [r0] adds r2, r1, 0 adds r2, 0xBC adds r0, r6, 0 adds r0, 0x48 ldrb r0, [r0] lsls r0, 2 ldr r7, _08073100 adds r1, r7 adds r1, r0 ldr r0, [r1] str r0, [r2] b _080731B8 .align 2, 0 _080730FC: .4byte gDungeonGlobalData _08073100: .4byte 0x0001357c _08073104: adds r0, r4, 0 bl sub_8066D04 b _080731B8 _0807310C: adds r0, r4, 0 bl sub_8066E14 b _080731B8 _08073114: adds r0, r4, 0 bl sub_8066FA4 b _080731B8 _0807311C: adds r0, r6, 0 bl sub_8071A70 lsls r0, 24 cmp r0, 0 beq _08073136 adds r0, r4, 0 bl nullsub_95 adds r0, r4, 0 bl sub_80671A0 b _080731B8 _08073136: ldr r0, _08073144 adds r1, r4, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08073148 b _080731A2 .align 2, 0 _08073144: .4byte gAvailablePokemonNames _08073148: .4byte gUnknown_80FE6D4 _0807314C: adds r0, r4, 0 bl sub_8067510 b _080731B8 _08073154: adds r0, r4, 0 bl sub_8067884 b _080731B8 _0807315C: movs r1, 0xB0 lsls r1, 1 b _08073164 _08073162: ldr r1, _0807316C _08073164: adds r0, r4, 0 bl sub_8067904 b _080731B8 .align 2, 0 _0807316C: .4byte 0x00000163 _08073170: adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0 movs r3, 0 bl sub_807FE9C b _080731B8 _0807317E: adds r0, r4, 0 bl sub_8073D08 b _080731B8 _08073186: adds r0, r4, 0 bl sub_8073CF0 b _080731B8 _0807318E: adds r0, r4, 0 bl sub_8073CFC b _080731B8 _08073196: ldr r0, _080731AC adds r1, r4, 0 movs r2, 0 bl SetMessageArgument ldr r0, _080731B0 _080731A2: ldr r1, [r0] adds r0, r4, 0 bl SendMessage b _080731B8 .align 2, 0 _080731AC: .4byte gAvailablePokemonNames _080731B0: .4byte gUnknown_80FE478 _080731B4: movs r0, 0x1 strh r0, [r5] _080731B8: adds r0, r4, 0 bl sub_807FD84 adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _080731CC b _080732D4 _080731CC: ldr r0, [r4, 0x70] movs r2, 0xA5 lsls r2, 1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _080731E2 strb r0, [r1] adds r0, r4, 0 bl sub_8079764 _080731E2: movs r0, 0 bl sub_8041888 adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080732D4 bl sub_8085140 ldr r3, _080732E8 adds r1, r6, r3 ldrb r0, [r1] cmp r0, 0 beq _08073242 movs r5, 0 strb r5, [r1] movs r7, 0x8C lsls r7, 1 adds r2, r6, r7 movs r0, 0x1 mov r12, r0 movs r7, 0x10 movs r3, 0x3 _08073214: ldrb r1, [r2] mov r0, r12 ands r0, r1 cmp r0, 0 beq _0807322C adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _0807322C movs r0, 0 strb r0, [r2, 0x4] movs r5, 0x1 _0807322C: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08073214 cmp r5, 0 beq _08073242 ldr r0, _080732EC ldr r1, [r0] adds r0, r4, 0 bl SendMessage _08073242: bl sub_807360C bl sub_8044B84 lsls r0, 24 cmp r0, 0 bne _08073264 bl sub_807348C bl sub_80732F0 adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080732D4 _08073264: mov r1, r10 cmp r1, 0 beq _08073270 adds r0, r4, 0 bl sub_8075818 _08073270: adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080732D4 bl sub_8044B84 lsls r0, 24 cmp r0, 0 bne _0807328A bl sub_8046D20 _0807328A: movs r0, 0 bl sub_8041888 adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080732D4 movs r2, 0xA2 lsls r2, 1 adds r0, r6, r2 ldrb r0, [r0] cmp r0, 0 bne _080732D4 mov r3, r10 cmp r3, 0 bne _080732D4 adds r1, r4, 0x4 adds r0, r4, 0 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _080732C8 adds r0, r4, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _080732C8: adds r0, r4, 0 bl sub_8074094 adds r0, r4, 0 bl sub_8071DA4 _080732D4: movs r0, 0 _080732D6: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080732E8: .4byte 0x0000014b _080732EC: .4byte gUnknown_80FD2CC thumb_func_end sub_8072CF4 thumb_func_start sub_80732F0 sub_80732F0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 movs r4, 0 _080732FE: movs r5, 0 ldr r0, _0807335C ldr r0, [r0] lsls r1, r4, 2 ldr r2, _08073360 adds r0, r2 adds r0, r1 ldr r0, [r0] mov r8, r0 bl EntityExists lsls r0, 24 adds r4, 0x1 str r4, [sp, 0x10] cmp r0, 0 bne _08073320 b _08073472 _08073320: mov r0, r8 ldr r7, [r0, 0x70] movs r1, 0xB2 lsls r1, 1 adds r4, r7, r1 ldrb r0, [r4] cmp r0, 0xFF bne _08073332 b _08073472 _08073332: adds r2, r0, 0 mov r9, r2 mov r0, r8 movs r1, 0x1 bl sub_8070D04 lsls r0, 24 cmp r0, 0 bne _0807336E mov r0, r8 bl sub_8070B28 lsls r0, 24 cmp r0, 0 bne _08073364 ldrb r0, [r4] movs r2, 0xFF orrs r0, r2 strb r0, [r4] b _08073472 .align 2, 0 _0807335C: .4byte gDungeonGlobalData _08073360: .4byte 0x000135cc _08073364: adds r0, r7, 0 adds r0, 0xEC ldrb r0, [r0] cmp r0, 0x1 bne _08073378 _0807336E: ldrb r0, [r4] movs r1, 0xFF orrs r0, r1 strb r0, [r4] b _08073472 _08073378: movs r0, 0x4 bl DungeonRandomCapped adds r3, r0, 0 movs r4, 0 _08073382: lsls r0, r3, 3 movs r2, 0x8C lsls r2, 1 adds r0, r2 adds r2, r7, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08073448 ldr r0, [r2] ldr r1, [r2, 0x4] str r0, [sp, 0x8] str r1, [sp, 0xC] ldr r1, [sp, 0x8] lsrs r0, r1, 16 cmp r0, 0x8A beq _08073448 adds r1, r0, 0 ldr r0, _08073434 cmp r1, r0 beq _08073448 movs r6, 0 movs r0, 0x46 adds r0, r7 mov r10, r0 movs r1, 0x8C lsls r1, 1 adds r4, r7, r1 _080733BC: lsls r0, r6, 3 movs r2, 0x8C lsls r2, 1 adds r0, r2 adds r5, r7, r0 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080733F4 ldrb r0, [r7, 0x7] cmp r0, 0 bne _080733DE movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080733F4 _080733DE: ldrh r0, [r4, 0x2] cmp r0, 0xE3 bne _080733F4 mov r0, r8 adds r1, r5, 0 movs r2, 0x1 bl sub_80573CC lsls r0, 24 cmp r0, 0 bne _08073440 _080733F4: adds r4, 0x8 adds r6, 0x1 cmp r6, 0x3 ble _080733BC _080733FC: ldr r0, _08073438 mov r1, r8 movs r2, 0 bl SetMessageArgument ldr r0, _0807343C ldr r1, [r0] mov r0, r8 bl SendMessage movs r0, 0x7 mov r1, r9 ands r1, r0 movs r0, 0 mov r2, r10 strb r1, [r2] str r0, [sp] add r0, sp, 0x8 str r0, [sp, 0x4] mov r0, r8 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_8055FA0 movs r5, 0x1 b _08073456 .align 2, 0 _08073434: .4byte 0x00000147 _08073438: .4byte gAvailablePokemonNames _0807343C: .4byte gUnknown_80FCF38 _08073440: adds r0, r5, 0x4 bl sub_80838EC b _080733FC _08073448: adds r3, 0x1 cmp r3, 0x4 bne _08073450 movs r3, 0 _08073450: adds r4, 0x1 cmp r4, 0x3 ble _08073382 _08073456: movs r2, 0xB2 lsls r2, 1 adds r1, r7, r2 ldrb r0, [r1] movs r2, 0xFF orrs r0, r2 strb r0, [r1] cmp r5, 0 beq _08073472 mov r0, r8 movs r1, 0xB8 lsls r1, 2 bl sub_80421C0 _08073472: ldr r4, [sp, 0x10] cmp r4, 0x13 bgt _0807347A b _080732FE _0807347A: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80732F0 thumb_func_start sub_807348C sub_807348C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 movs r4, 0 movs r0, 0xFF mov r9, r0 _0807349E: ldr r0, _080734E8 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _080734EC adds r0, r2 adds r0, r1 ldr r7, [r0] adds r0, r7, 0 bl EntityExists lsls r0, 24 adds r4, 0x1 str r4, [sp, 0x10] cmp r0, 0 bne _080734BE b _080735E6 _080734BE: ldr r6, [r7, 0x70] ldr r0, _080734F0 adds r4, r6, r0 ldrb r0, [r4] cmp r0, 0xFF bne _080734CC b _080735E6 _080734CC: adds r1, r0, 0 mov r8, r1 adds r0, r7, 0 movs r1, 0x1 bl sub_8070D04 lsls r0, 24 cmp r0, 0 beq _080734F4 ldrb r0, [r4] mov r2, r9 orrs r0, r2 strb r0, [r4] b _080735DA .align 2, 0 _080734E8: .4byte gDungeonGlobalData _080734EC: .4byte 0x000135cc _080734F0: .4byte 0x00000165 _080734F4: adds r0, r7, 0 bl sub_8070B28 lsls r0, 24 cmp r0, 0 bne _08073514 ldrb r0, [r4] mov r1, r9 orrs r0, r1 strb r0, [r4] movs r2, 0xB2 lsls r2, 1 adds r1, r6, r2 ldrb r0, [r1] mov r2, r9 b _080735E2 _08073514: adds r0, r6, 0 adds r0, 0xEC ldrb r0, [r0] cmp r0, 0x1 bne _0807354A ldrb r0, [r4] mov r1, r9 orrs r0, r1 strb r0, [r4] movs r2, 0xB2 lsls r2, 1 adds r1, r6, r2 ldrb r0, [r1] mov r2, r9 b _080735E2 _08073532: ldr r0, [r5] ldr r1, [r5, 0x4] str r0, [sp, 0x8] str r1, [sp, 0xC] adds r0, r5, 0x4 bl sub_80838EC adds r0, r7, 0 adds r1, r5, 0 bl sub_806ACE8 b _0807359C _0807354A: movs r3, 0 movs r0, 0x46 adds r0, r6 mov r10, r0 movs r1, 0x8C lsls r1, 1 adds r4, r6, r1 _08073558: lsls r0, r3, 3 movs r2, 0x8C lsls r2, 1 adds r0, r2 adds r5, r6, r0 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08073594 ldrb r0, [r6, 0x7] cmp r0, 0 bne _0807357A movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08073594 _0807357A: ldrh r0, [r4, 0x2] cmp r0, 0x19 bne _08073594 adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x1 str r3, [sp, 0x14] bl sub_80573CC lsls r0, 24 ldr r3, [sp, 0x14] cmp r0, 0 bne _08073532 _08073594: adds r4, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _08073558 _0807359C: ldr r0, _08073600 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08073604 ldr r1, [r0] adds r0, r7, 0 bl SendMessage movs r0, 0x7 mov r1, r8 ands r1, r0 movs r0, 0 mov r2, r10 strb r1, [r2] str r0, [sp] add r0, sp, 0x8 str r0, [sp, 0x4] adds r0, r7, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_8055FA0 ldr r2, _08073608 adds r1, r6, r2 ldrb r0, [r1] mov r2, r9 orrs r0, r2 strb r0, [r1] _080735DA: movs r0, 0xB2 lsls r0, 1 adds r1, r6, r0 ldrb r0, [r1] _080735E2: orrs r0, r2 strb r0, [r1] _080735E6: ldr r4, [sp, 0x10] cmp r4, 0x13 bgt _080735EE b _0807349E _080735EE: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08073600: .4byte gAvailablePokemonNames _08073604: .4byte gUnknown_80FCF50 _08073608: .4byte 0x00000165 thumb_func_end sub_807348C thumb_func_start sub_807360C sub_807360C: push {r4,r5,lr} movs r5, 0 _08073610: ldr r0, _08073650 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08073654 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08073644 ldr r0, [r4, 0x70] movs r2, 0xA9 lsls r2, 1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _08073644 movs r0, 0 strb r0, [r1] adds r0, r4, 0 adds r1, r4, 0 bl sub_8077274 _08073644: adds r5, 0x1 cmp r5, 0x13 ble _08073610 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08073650: .4byte gDungeonGlobalData _08073654: .4byte 0x000135cc thumb_func_end sub_807360C thumb_func_start DecideUseItem DecideUseItem: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x58 mov r8, r0 ldr r6, [r0, 0x70] bl CannotUseItems lsls r0, 24 cmp r0, 0 beq _080736B8 adds r1, r6, 0 adds r1, 0xFC movs r0, 0 strb r0, [r1] b _080739C4 _0807367C: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x24 bl sub_8044C94 adds r0, r6, 0 adds r0, 0x48 add r1, sp, 0x54 ldrb r1, [r1] strb r1, [r0] mov r2, r8 ldrh r1, [r2, 0x4] adds r0, 0x4 strh r1, [r0] ldrh r0, [r2, 0x6] adds r1, r6, 0 adds r1, 0x4E strh r0, [r1] ldr r0, _080736B4 adds r0, r7, r0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 adds r1, r6, 0 adds r1, 0x46 strb r0, [r1] b _08073718 .align 2, 0 _080736B4: .4byte gUnknown_202F330 _080736B8: adds r0, r6, 0 adds r0, 0xFC ldrb r0, [r0] cmp r0, 0 bne _080736C4 b _080737DC _080736C4: adds r7, r6, 0 adds r7, 0x60 ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080736D4 b _080739C4 _080736D4: movs r3, 0x81 str r3, [sp, 0x54] ldrb r0, [r7, 0x2] bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0807372C mov r0, r8 movs r1, 0x2 adds r2, r7, 0 movs r3, 0x1 bl sub_80739DC movs r5, 0 ldr r0, _08073724 ldr r0, [r0] cmp r5, r0 bge _08073718 ldr r4, _08073728 _080736FE: lsls r7, r5, 2 ldr r0, [r4] bl sub_8084144 lsls r0, 24 cmp r0, 0 bne _0807367C adds r4, 0x4 adds r5, 0x1 ldr r0, _08073724 ldr r0, [r0] cmp r5, r0 blt _080736FE _08073718: ldr r0, _08073724 ldr r0, [r0] cmp r5, r0 beq _08073722 b _080739C4 _08073722: b _08073792 .align 2, 0 _08073724: .4byte gUnknown_203B440 _08073728: .4byte gUnknown_202F358 _0807372C: cmp r0, 0x1 bne _0807377C mov r0, r8 adds r1, r7, 0 mov r2, sp movs r3, 0x1 bl sub_8073AA0 ldr r0, _08073778 ldr r0, [r0] cmp r0, 0 beq _08073792 bl DungeonRandomCapped adds r4, r0, 0 adds r0, r6, 0 adds r0, 0x44 movs r1, 0x24 bl sub_8044C94 adds r0, r6, 0 adds r0, 0x48 add r1, sp, 0x54 ldrb r1, [r1] strb r1, [r0] mov r2, r8 ldrh r1, [r2, 0x4] adds r0, 0x4 strh r1, [r0] ldrh r0, [r2, 0x6] adds r1, r6, 0 adds r1, 0x4E strh r0, [r1] mov r0, r8 adds r0, 0x4 lsls r4, 2 add r4, sp b _0807395E .align 2, 0 _08073778: .4byte gUnknown_203B440 _0807377C: subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08073792 adds r0, r6, 0 adds r0, 0x44 movs r1, 0x23 bl sub_8044C94 b _080738CE _08073792: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x39 bl sub_8044C94 b _080739C4 _0807379E: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x24 bl sub_8044C94 adds r0, r6, 0 adds r0, 0x48 add r3, sp, 0x54 ldrb r3, [r3] strb r3, [r0] mov r0, r8 ldrh r1, [r0, 0x4] adds r0, r6, 0 adds r0, 0x4C strh r1, [r0] mov r1, r8 ldrh r0, [r1, 0x6] adds r1, r6, 0 adds r1, 0x4E strh r0, [r1] ldr r0, _080737D8 add r0, r10 ldr r0, [r0] movs r1, 0x7 ands r0, r1 adds r1, r6, 0 adds r1, 0x46 strb r0, [r1] b _080739C4 .align 2, 0 _080737D8: .4byte gUnknown_202F330 _080737DC: mov r0, r8 movs r1, 0x16 bl HasIQSkill lsls r0, 24 cmp r0, 0 bne _080737EC b _080739C4 _080737EC: movs r2, 0x1 str r2, [sp, 0x50] _080737F0: ldr r3, [sp, 0x50] cmp r3, 0x1 bne _080737FE adds r7, r6, 0 adds r7, 0x60 movs r0, 0x81 b _0807384E _080737FE: ldr r1, [sp, 0x50] cmp r1, 0 bne _08073832 mov r2, r8 movs r3, 0x4 ldrsh r0, [r2, r3] movs r3, 0x6 ldrsh r1, [r2, r3] bl sub_804954C adds r4, r0, 0 ldr r0, [r4, 0x14] cmp r0, 0 bne _0807381C b _080739B8 _0807381C: bl sub_80450F8 cmp r0, 0x3 beq _08073826 b _080739B8 _08073826: ldr r0, [r4, 0x14] bl sub_8045108 adds r7, r0, 0 movs r0, 0x80 b _0807384E _08073832: ldrb r0, [r6, 0x7] cmp r0, 0 bne _0807383A b _080739C4 _0807383A: ldr r1, _080738C0 ldr r2, [sp, 0x50] lsls r0, r2, 2 subs r0, 0x8 ldr r1, [r1] adds r7, r1, r0 adds r0, r2, 0 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 _0807384E: str r0, [sp, 0x54] ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0807385C b _080739B8 _0807385C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08073866 b _080739B8 _08073866: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08073870 b _080739B8 _08073870: ldrb r0, [r7, 0x2] movs r1, 0 bl GetItemAIFlags lsls r0, 24 cmp r0, 0 beq _080738EC mov r0, r8 adds r1, r7, 0 movs r2, 0x2 bl sub_8048F28 adds r5, r0, 0 cmp r5, 0 beq _080738EC ldrb r0, [r7, 0x2] bl GetItemType lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 cmp r4, 0x9 bne _080738A4 ldrb r0, [r6, 0x6] cmp r0, 0 beq _080738EC _080738A4: adds r0, r5, 0 bl sub_8084144 lsls r0, 24 cmp r0, 0 beq _080738EC cmp r4, 0x9 bne _080738C4 adds r0, r6, 0 adds r0, 0x44 movs r1, 0x31 bl sub_8044C94 b _080738CE .align 2, 0 _080738C0: .4byte gTeamInventory_203B460 _080738C4: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x23 bl sub_8044C94 _080738CE: adds r0, r6, 0 adds r0, 0x48 add r3, sp, 0x54 ldrb r3, [r3] strb r3, [r0] mov r0, r8 ldrh r1, [r0, 0x4] adds r0, r6, 0 adds r0, 0x4C strh r1, [r0] mov r2, r8 ldrh r1, [r2, 0x6] adds r0, 0x2 strh r1, [r0] b _080739C4 _080738EC: adds r0, r6, 0 bl sub_8071A70 lsls r0, 24 cmp r0, 0 beq _080739B8 movs r3, 0x1 mov r9, r3 _080738FC: ldrb r0, [r7, 0x2] mov r1, r9 bl GetItemAIFlags lsls r0, 24 cmp r0, 0 beq _080739AE ldrb r0, [r7, 0x2] bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08073978 mov r0, r8 adds r1, r7, 0 mov r2, sp movs r3, 0 bl sub_8073AA0 ldr r1, _08073974 ldr r0, [r1] cmp r0, 0 beq _080739AE bl DungeonRandomCapped adds r4, r0, 0 adds r0, r6, 0 adds r0, 0x44 movs r1, 0x24 bl sub_8044C94 adds r0, r6, 0 adds r0, 0x48 add r2, sp, 0x54 ldrb r2, [r2] strb r2, [r0] mov r3, r8 ldrh r1, [r3, 0x4] adds r0, 0x4 strh r1, [r0] ldrh r0, [r3, 0x6] adds r1, r6, 0 adds r1, 0x4E strh r0, [r1] lsls r4, 2 add r4, sp mov r0, r8 adds r0, 0x4 _0807395E: adds r1, r4, 0 bl sub_80983D8 movs r1, 0x7 ands r0, r1 adds r1, r6, 0 adds r1, 0x46 strb r0, [r1] ldr r0, [r4] str r0, [r6, 0x58] b _080739C4 .align 2, 0 _08073974: .4byte gUnknown_203B440 _08073978: mov r0, r8 mov r1, r9 adds r2, r7, 0 movs r3, 0 bl sub_80739DC movs r5, 0 ldr r1, _080739D4 ldr r0, [r1] cmp r5, r0 bge _080739AE ldr r4, _080739D8 _08073990: lsls r2, r5, 2 mov r10, r2 ldr r0, [r4] bl sub_8084144 lsls r0, 24 cmp r0, 0 beq _080739A2 b _0807379E _080739A2: adds r4, 0x4 adds r5, 0x1 ldr r3, _080739D4 ldr r0, [r3] cmp r5, r0 blt _08073990 _080739AE: movs r0, 0x1 add r9, r0 mov r1, r9 cmp r1, 0x2 ble _080738FC _080739B8: ldr r2, [sp, 0x50] adds r2, 0x1 str r2, [sp, 0x50] cmp r2, 0x15 bgt _080739C4 b _080737F0 _080739C4: add sp, 0x58 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080739D4: .4byte gUnknown_203B440 _080739D8: .4byte gUnknown_202F358 thumb_func_end DecideUseItem thumb_func_start sub_80739DC sub_80739DC: 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 mov r9, r2 lsls r3, 24 lsrs r3, 24 mov r8, r3 ldr r1, _08073A44 movs r0, 0 str r0, [r1] ldr r1, _08073A48 movs r2, 0 adds r0, r1, 0x7 _08073A00: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08073A00 movs r7, 0 _08073A0A: ldr r0, _08073A4C ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08073A50 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08073A88 cmp r5, r4 beq _08073A88 mov r0, r10 cmp r0, 0x1 bne _08073A54 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_8071598 lsls r0, 24 cmp r0, 0 bne _08073A88 movs r6, 0x3 b _08073A6A .align 2, 0 _08073A44: .4byte gUnknown_203B440 _08073A48: .4byte gUnknown_202F350 _08073A4C: .4byte gDungeonGlobalData _08073A50: .4byte 0x000135cc _08073A54: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08073A88 movs r6, 0x1 _08073A6A: adds r0, r5, 0 adds r1, r4, 0 bl CanSee lsls r0, 24 cmp r0, 0 beq _08073A88 mov r2, r8 str r2, [sp] adds r0, r5, 0 adds r1, r4, 0 mov r2, r9 adds r3, r6, 0 bl sub_8073B78 _08073A88: adds r7, 0x1 cmp r7, 0x13 ble _08073A0A add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80739DC thumb_func_start sub_8073AA0 sub_8073AA0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 mov r10, r1 mov r9, r2 lsls r3, 24 lsrs r3, 24 mov r8, r3 ldr r1, _08073B6C movs r0, 0 str r0, [r1] movs r6, 0 adds r7, r1, 0 _08073AC0: ldr r0, _08073B70 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08073B74 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08073B56 cmp r5, r4 beq _08073B56 adds r0, r5, 0 adds r1, r4, 0 bl CanSee lsls r0, 24 cmp r0, 0 beq _08073B56 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8071598 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08073B56 movs r3, 0x4 ldrsh r1, [r4, r3] movs r2, 0x4 ldrsh r0, [r5, r2] subs r2, r1, r0 cmp r2, 0 bge _08073B10 negs r2, r2 _08073B10: movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x6 ldrsh r0, [r5, r3] subs r1, r0 cmp r1, 0 bge _08073B20 negs r1, r1 _08073B20: cmp r1, r2 bge _08073B26 adds r1, r2, 0 _08073B26: cmp r1, 0xA bgt _08073B56 mov r0, r8 cmp r0, 0 bne _08073B44 adds r0, r4, 0 mov r1, r10 movs r2, 0x1 bl sub_8048F28 bl sub_8084144 lsls r0, 24 cmp r0, 0 beq _08073B56 _08073B44: ldr r2, [r7] lsls r1, r2, 2 add r1, r9 ldrh r0, [r4, 0x4] strh r0, [r1] ldrh r0, [r4, 0x6] strh r0, [r1, 0x2] adds r2, 0x1 str r2, [r7] _08073B56: adds r6, 0x1 cmp r6, 0x13 ble _08073AC0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08073B6C: .4byte gUnknown_203B440 _08073B70: .4byte gDungeonGlobalData _08073B74: .4byte 0x000135cc thumb_func_end sub_8073AA0 thumb_func_start sub_8073B78 sub_8073B78: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r0, 0 adds r5, r1, 0 mov r9, r2 mov r10, r3 ldr r0, [sp, 0x20] lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x4 ldrsh r1, [r4, r0] movs r2, 0x4 ldrsh r0, [r5, r2] subs r2, r1, r0 cmp r2, 0 bge _08073BA2 negs r2, r2 _08073BA2: movs r3, 0x6 ldrsh r1, [r4, r3] movs r6, 0x6 ldrsh r0, [r5, r6] subs r1, r0 cmp r1, 0 bge _08073BB2 negs r1, r1 _08073BB2: ldr r0, [r4, 0x70] adds r0, 0xE0 ldrb r0, [r0] cmp r0, 0 bne _08073BCA adds r0, r1, 0 cmp r1, r2 bge _08073BC4 adds r0, r2, 0 _08073BC4: cmp r0, 0xA ble _08073BCA b _08073CDC _08073BCA: movs r6, 0x1 negs r6, r6 cmp r2, r1 bne _08073C14 movs r7, 0x4 ldrsh r1, [r4, r7] movs r2, 0x4 ldrsh r0, [r5, r2] ldrh r2, [r4, 0x4] ldrh r3, [r5, 0x4] cmp r1, r0 bge _08073BFA movs r6, 0x6 ldrsh r1, [r4, r6] movs r7, 0x6 ldrsh r0, [r5, r7] cmp r1, r0 bge _08073BF2 movs r6, 0x1 b _08073C7E _08073BF2: cmp r1, r0 ble _08073BFA movs r6, 0x3 b _08073C7E _08073BFA: lsls r1, r2, 16 lsls r0, r3, 16 movs r6, 0x7 cmp r1, r0 ble _08073C7A movs r0, 0x6 ldrsh r1, [r4, r0] movs r2, 0x6 ldrsh r0, [r5, r2] cmp r1, r0 ble _08073C7A movs r6, 0x5 b _08073C7E _08073C14: movs r3, 0x4 ldrsh r1, [r4, r3] movs r7, 0x4 ldrsh r0, [r5, r7] ldrh r2, [r4, 0x4] ldrh r3, [r5, 0x4] cmp r1, r0 bne _08073C34 movs r0, 0x6 ldrsh r1, [r4, r0] movs r7, 0x6 ldrsh r0, [r5, r7] cmp r1, r0 bge _08073C34 movs r6, 0 b _08073C7E _08073C34: lsls r1, r2, 16 lsls r0, r3, 16 cmp r1, r0 bge _08073C4C movs r0, 0x6 ldrsh r1, [r4, r0] movs r7, 0x6 ldrsh r0, [r5, r7] cmp r1, r0 bne _08073C4C movs r6, 0x2 b _08073C7E _08073C4C: lsls r1, r2, 16 lsls r0, r3, 16 cmp r1, r0 bne _08073C64 movs r0, 0x6 ldrsh r1, [r4, r0] movs r7, 0x6 ldrsh r0, [r5, r7] cmp r1, r0 ble _08073C64 movs r6, 0x4 b _08073C7E _08073C64: lsls r1, r2, 16 lsls r0, r3, 16 cmp r1, r0 ble _08073C7A movs r0, 0x6 ldrsh r1, [r4, r0] movs r2, 0x6 ldrsh r0, [r5, r2] cmp r1, r0 bne _08073C7A movs r6, 0x6 _08073C7A: cmp r6, 0 blt _08073CDC _08073C7E: ldr r0, _08073CC0 adds r7, r6, r0 ldrb r0, [r7] cmp r0, 0 bne _08073CDC adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0xA bl sub_807C9F8 lsls r0, 24 cmp r0, 0 beq _08073CDC movs r0, 0x1 strb r0, [r7] ldr r1, _08073CC4 ldr r0, _08073CC8 ldr r0, [r0] lsls r0, 2 adds r1, r0, r1 str r6, [r1] ldr r1, _08073CCC adds r4, r0, r1 mov r3, r8 cmp r3, 0 bne _08073CD0 adds r0, r5, 0 mov r1, r9 mov r2, r10 bl sub_8048F28 b _08073CD2 .align 2, 0 _08073CC0: .4byte gUnknown_202F350 _08073CC4: .4byte gUnknown_202F330 _08073CC8: .4byte gUnknown_203B440 _08073CCC: .4byte gUnknown_202F358 _08073CD0: movs r0, 0x64 _08073CD2: str r0, [r4] ldr r1, _08073CEC ldr r0, [r1] adds r0, 0x1 str r0, [r1] _08073CDC: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08073CEC: .4byte gUnknown_203B440 thumb_func_end sub_8073B78 thumb_func_start sub_8073CF0 sub_8073CF0: push {lr} bl sub_8067110 pop {r0} bx r0 thumb_func_end sub_8073CF0 thumb_func_start sub_8073CFC sub_8073CFC: push {lr} bl sub_80671A0 pop {r0} bx r0 thumb_func_end sub_8073CFC thumb_func_start sub_8073D08 sub_8073D08: push {lr} bl sub_8073D14 pop {r0} bx r0 thumb_func_end sub_8073D08 thumb_func_start sub_8073D14 sub_8073D14: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xB0 adds r6, r0, 0 ldr r4, [r6, 0x70] bl sub_8045128 ldr r5, [r0, 0x14] cmp r5, 0 bne _08073D30 b _0807407A _08073D30: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08073D3C b _0807407A _08073D3C: ldr r0, _08073D68 adds r1, r6, 0 movs r2, 0 bl SetMessageArgument ldrb r0, [r4, 0x7] cmp r0, 0 beq _08073D4E b _0807407A _08073D4E: ldrb r0, [r4, 0x8] cmp r0, 0x1 bne _08073D56 b _0807407A _08073D56: adds r0, r4, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08073D64 cmp r0, 0x47 bne _08073D6C _08073D64: movs r0, 0x1 b _08073D6E .align 2, 0 _08073D68: .4byte gAvailablePokemonNames _08073D6C: movs r0, 0 _08073D6E: cmp r0, 0 beq _08073D74 b _0807407A _08073D74: adds r0, r4, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _08073D80 b _0807407A _08073D80: ldr r0, [r6, 0x70] mov r10, r0 adds r0, r5, 0 bl sub_8045108 adds r5, r0, 0 ldrb r1, [r5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08073D98 b _0807407A _08073D98: adds r0, r6, 0 movs r1, 0x1 bl sub_8071518 lsls r0, 24 cmp r0, 0 beq _08073DC8 ldr r0, _08073DBC adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08073DC0 adds r1, r6, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08073DC4 b _0807404C .align 2, 0 _08073DBC: .4byte gUnknown_202DE58 _08073DC0: .4byte gAvailablePokemonNames _08073DC4: .4byte gUnknown_80F8F88 _08073DC8: mov r1, r10 ldrb r0, [r1, 0x6] cmp r0, 0 bne _08073E24 ldrb r0, [r5, 0x2] bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _08073E24 mov r7, r10 ldrb r0, [r7, 0x6] cmp r0, 0 beq _08073DF4 ldr r0, _08073DF0 bl PlaySoundEffect b _08073DFC .align 2, 0 _08073DF0: .4byte 0x0000014b _08073DF4: movs r0, 0xA6 lsls r0, 1 bl PlaySoundEffect _08073DFC: adds r0, r5, 0 bl GetMoneyValue bl AddToTeamMoney ldr r0, _08073E1C adds r1, r5, 0 bl sub_8045BF8 adds r0, r6, 0x4 movs r1, 0x1 bl sub_80461C8 ldr r0, _08073E20 b _0807404C .align 2, 0 _08073E1C: .4byte gUnknown_202DE58 _08073E20: .4byte gUnknown_80F9054 _08073E24: ldr r0, _08073E64 ldr r0, [r0] ldr r1, _08073E68 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08073E70 mov r7, r10 ldrb r0, [r7, 0x6] cmp r0, 0 bne _08073E70 movs r4, 0 add r2, sp, 0x54 adds r7, 0x60 ldr r0, _08073E6C mov r1, sp ldr r0, [r0] adds r3, r2, 0 _08073E48: stm r3!, {r0} stm r1!, {r4} adds r0, 0x4 adds r4, 0x1 cmp r4, 0x13 ble _08073E48 str r7, [r2, 0x50] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x50] movs r0, 0x15 mov r8, r0 b _08073E80 .align 2, 0 _08073E64: .4byte gDungeonGlobalData _08073E68: .4byte 0x0000065b _08073E6C: .4byte gTeamInventory_203B460 _08073E70: mov r0, r10 adds r0, 0x60 str r0, [sp, 0x54] movs r0, 0x1 negs r0, r0 str r0, [sp] movs r1, 0x1 mov r8, r1 _08073E80: ldrb r0, [r5, 0x2] add r7, sp, 0xA8 strb r0, [r7] adds r0, r7, 0 ldrb r0, [r0] cmp r0, 0x8 bls _08073E90 b _08073FA8 _08073E90: ldrb r1, [r5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08073E9C b _08073FA8 _08073E9C: movs r1, 0x1 negs r1, r1 mov r12, r1 mov r7, r12 str r7, [sp, 0xAC] movs r4, 0 cmp r4, r8 bge _08073EEC ldr r0, _08073F94 mov r9, r0 add r3, sp, 0x54 _08073EB2: ldr r2, [r3] ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08073EE4 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08073EE4 ldr r1, [r5] mov r7, r9 ands r1, r7 ldr r0, [r2] ands r0, r7 cmp r1, r0 bne _08073EE4 ldrb r0, [r2, 0x1] cmp r0, 0x63 beq _08073EE4 ldr r1, [sp, 0xAC] cmp r1, r0 bge _08073EE4 str r0, [sp, 0xAC] mov r12, r4 _08073EE4: adds r3, 0x4 adds r4, 0x1 cmp r4, r8 blt _08073EB2 _08073EEC: movs r0, 0x1 negs r0, r0 cmp r12, r0 bne _08073F40 mov r7, r12 str r7, [sp, 0xAC] movs r4, 0 cmp r4, r8 bge _08073F38 add r0, sp, 0xA8 ldrb r0, [r0] mov r9, r0 add r3, sp, 0x54 _08073F06: ldr r2, [r3] ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08073F30 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08073F30 ldrb r1, [r2, 0x2] cmp r9, r1 bne _08073F30 ldrb r0, [r2, 0x1] cmp r0, 0x63 beq _08073F30 ldr r7, [sp, 0xAC] cmp r7, r0 bge _08073F30 str r0, [sp, 0xAC] mov r12, r4 _08073F30: adds r3, 0x4 adds r4, 0x1 cmp r4, r8 blt _08073F06 _08073F38: movs r0, 0x1 negs r0, r0 cmp r12, r0 beq _08073FA8 _08073F40: add r0, sp, 0x54 mov r1, r12 lsls r4, r1, 2 adds r3, r0, r4 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r5, 0x1] adds r1, r0 cmp r1, 0x62 ble _08073F56 movs r1, 0x63 _08073F56: strb r1, [r2, 0x1] ldrb r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08073F6C ldr r0, [r3] ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] _08073F6C: ldr r0, _08073F98 adds r1, r5, 0 bl sub_8045BF8 adds r0, r6, 0x4 movs r1, 0x1 bl sub_80461C8 movs r0, 0xA5 lsls r0, 1 bl PlaySoundEffect mov r7, sp adds r0, r7, r4 ldr r0, [r0] cmp r0, 0 bge _08073FA0 ldr r0, _08073F9C b _0807404C .align 2, 0 _08073F94: .4byte 0x00ff0008 _08073F98: .4byte gUnknown_202DE58 _08073F9C: .4byte gUnknown_80F9018 _08073FA0: ldr r0, _08073FA4 b _0807404C .align 2, 0 _08073FA4: .4byte gUnknown_80F9050 _08073FA8: movs r4, 0 cmp r4, r8 bge _08073FD2 ldr r0, [sp, 0x54] ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08073FD2 movs r3, 0x1 add r2, sp, 0x54 _08073FBE: adds r2, 0x4 adds r4, 0x1 cmp r4, r8 bge _08073FD2 ldr r0, [r2] ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08073FBE _08073FD2: cmp r4, r8 bne _08073FEC ldr r0, _08073FE4 adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08073FE8 b _0807404C .align 2, 0 _08073FE4: .4byte gUnknown_202DE58 _08073FE8: .4byte gUnknown_80F8F54 _08073FEC: mov r1, r10 ldrb r0, [r1, 0x6] cmp r0, 0 beq _08074000 ldr r0, _08073FFC bl PlaySoundEffect b _08074008 .align 2, 0 _08073FFC: .4byte 0x0000014b _08074000: movs r0, 0xA5 lsls r0, 1 bl PlaySoundEffect _08074008: lsls r0, r4, 2 add r0, sp ldr r0, [r0] cmp r0, 0 bge _08074034 ldr r0, [r5] mov r7, r10 str r0, [r7, 0x60] ldr r0, _0807402C adds r1, r5, 0 bl sub_8045BF8 adds r0, r6, 0x4 movs r1, 0x1 bl sub_80461C8 ldr r0, _08074030 b _0807404C .align 2, 0 _0807402C: .4byte gUnknown_202DE58 _08074030: .4byte gUnknown_80F9018 _08074034: adds r0, r5, 0 bl AddItemToInventory lsls r0, 24 cmp r0, 0 beq _08074060 ldr r0, _08074058 adds r1, r6, 0 movs r2, 0 bl SetMessageArgument ldr r0, _0807405C _0807404C: ldr r1, [r0] adds r0, r6, 0 bl sub_805239C b _0807407A .align 2, 0 _08074058: .4byte gAvailablePokemonNames _0807405C: .4byte gUnknown_80F8FAC _08074060: ldr r0, _0807408C adds r1, r5, 0 bl sub_8045BF8 adds r0, r6, 0x4 movs r1, 0x1 bl sub_80461C8 ldr r0, _08074090 ldr r1, [r0] adds r0, r6, 0 bl sub_805239C _0807407A: add sp, 0xB0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807408C: .4byte gUnknown_202DE58 _08074090: .4byte gUnknown_80F9050 thumb_func_end sub_8073D14 thumb_func_start sub_8074094 sub_8074094: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 adds r5, r0, 0 cmp r5, 0 bne _080740AA bl _08074B2E _080740AA: bl EntityExists lsls r0, 24 cmp r0, 0 bne _080740B8 bl _08074B2E _080740B8: bl sub_8044B28 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _080740C8 bl _08074B2E _080740C8: ldr r0, [r5, 0x70] mov r8, r0 movs r0, 0xA3 lsls r0, 1 add r0, r8 strb r6, [r0] bl sub_805229C adds r0, r5, 0 bl sub_807E8F0 adds r0, r5, 0 movs r1, 0x16 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08074170 ldr r4, _0807434C add r4, r8 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bls _08074102 movs r0, 0x13 strb r0, [r4] _08074102: movs r0, 0x64 bl DungeonRandomCapped ldr r2, _08074350 ldrb r1, [r4] lsls r1, 1 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _08074170 strb r6, [r4] adds r0, r5, 0 bl sub_80444F4 movs r0, 0 bl sub_807520C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074136 bl _08074B2E _08074136: bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08074146 bl _08074B2E _08074146: adds r0, r5, 0 adds r1, r5, 0 movs r2, 0 movs r3, 0 bl sub_807D148 mov r3, r8 ldrb r0, [r3, 0x7] cmp r0, 0 bne _0807415C b _080743B0 _0807415C: ldr r1, _08074354 ldr r0, [r1] strb r4, [r0, 0x1] ldr r0, [r1] movs r4, 0xB8 lsls r4, 3 adds r0, r4 movs r1, 0x1 negs r1, r1 str r1, [r0] _08074170: mov r1, r8 ldrb r0, [r1, 0x7] cmp r0, 0 bne _0807417A b _080743B0 _0807417A: movs r2, 0 mov r9, r2 movs r4, 0xA adds r0, r5, 0 movs r1, 0x17 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08074190 movs r4, 0 _08074190: adds r0, r5, 0 movs r1, 0x1F bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080741A0 subs r4, 0x1 _080741A0: adds r0, r5, 0 movs r1, 0x10 bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _080741B0 subs r4, 0x1 _080741B0: adds r0, r5, 0 movs r1, 0x1B bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080741C0 adds r4, 0x1 _080741C0: adds r0, r5, 0 movs r1, 0xA bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080741D0 adds r4, 0x1 _080741D0: adds r0, r5, 0 movs r1, 0x2B bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _080741E0 adds r4, 0x1 _080741E0: cmp r4, 0 bge _080741E6 movs r4, 0 _080741E6: cmp r4, 0x13 ble _080741EC movs r4, 0x13 _080741EC: mov r3, r9 str r3, [sp, 0x8] ldr r0, _08074358 str r0, [sp, 0xC] add r6, sp, 0x10 lsls r2, r4, 3 ldr r0, _0807435C adds r2, r0 adds r0, r6, 0 add r1, sp, 0x8 bl sub_800A34C ldr r2, _08074360 add r2, r8 ldrb r0, [r2] cmp r0, 0x1 bls _0807421E ldr r1, _08074364 lsls r0, 2 adds r0, r1 ldr r1, [r0] lsls r1, 16 ldr r0, [r6, 0x4] adds r0, r1 str r0, [r6, 0x4] _0807421E: mov r4, r9 strb r4, [r2] movs r4, 0x9E lsls r4, 1 add r4, r8 ldr r7, [r4] add r0, sp, 0x18 adds r1, r6, 0 bl sub_80943A8 ldr r2, [sp, 0x18] add r0, sp, 0x1C adds r1, r7, 0 bl sub_80942C0 ldr r0, [sp, 0x1C] str r0, [r4] movs r6, 0x1 adds r0, r7, 0 bl sub_8094450 cmp r0, 0x13 ble _0807425C ldr r0, [r4] bl sub_8094450 cmp r0, 0x13 bgt _0807425C ldr r0, _08074368 ldr r0, [r0] mov r9, r0 _0807425C: adds r0, r7, 0 bl sub_8094450 cmp r0, 0x9 ble _0807427C movs r0, 0x9E lsls r0, 1 add r0, r8 ldr r0, [r0] bl sub_8094450 cmp r0, 0x9 bgt _0807427C ldr r0, _0807436C ldr r0, [r0] mov r9, r0 _0807427C: movs r4, 0x9E lsls r4, 1 add r4, r8 ldr r0, [r4] bl sub_8094450 cmp r0, 0 bne _08074298 add r0, sp, 0x20 movs r1, 0 bl sub_80943A0 ldr r0, [sp, 0x20] str r0, [r4] _08074298: ldr r0, [r4] bl sub_8094450 cmp r0, 0 bge _080742AE add r0, sp, 0x24 movs r1, 0 bl sub_80943A0 ldr r0, [sp, 0x24] str r0, [r4] _080742AE: ldr r0, [r4] bl sub_8094450 cmp r0, 0 bne _08074384 bl sub_805E804 adds r0, r5, 0 bl sub_80444F4 movs r0, 0 bl sub_807520C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _080742D8 bl _08074B2E _080742D8: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080742E6 bl _08074B2E _080742E6: ldr r3, _08074354 ldr r0, [r3] ldr r2, _08074370 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x9 bhi _080742F8 adds r0, 0x1 strb r0, [r1] _080742F8: ldr r0, [r3] adds r0, r2 ldrb r2, [r0] cmp r2, 0x1 bne _08074308 ldr r0, _08074374 ldr r0, [r0] mov r9, r0 _08074308: cmp r2, 0x2 bne _08074314 ldr r0, _08074378 ldr r0, [r0] mov r9, r0 movs r6, 0 _08074314: cmp r2, 0x3 bne _08074320 ldr r0, _0807437C ldr r0, [r0] mov r9, r0 movs r6, 0 _08074320: adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C ldr r3, _08074380 adds r0, r5, 0 movs r1, 0x1 movs r2, 0xE bl sub_806F324 movs r1, 0xA3 lsls r1, 1 add r1, r8 movs r0, 0x1 strb r0, [r1] ldr r0, [r4] bl sub_8094450 cmp r0, 0 beq _08074390 b _080743B0 .align 2, 0 _0807434C: .4byte 0x00000169 _08074350: .4byte gUnknown_80F5594 _08074354: .4byte gDungeonGlobalData _08074358: .4byte 0x0000199a _0807435C: .4byte gUnknown_80F54F4 _08074360: .4byte 0x00000153 _08074364: .4byte gUnknown_80F60DC _08074368: .4byte gUnknown_80FD594 _0807436C: .4byte gUnknown_80FD5B8 _08074370: .4byte 0x00000679 _08074374: .4byte gUnknown_80FD5DC _08074378: .4byte gUnknown_80FD608 _0807437C: .4byte gUnknown_80FD628 _08074380: .4byte 0x00000211 _08074384: ldr r0, _08074408 ldr r0, [r0] ldr r1, _0807440C adds r0, r1 movs r1, 0 strb r1, [r0] _08074390: mov r2, r9 cmp r2, 0 beq _080743B0 cmp r6, 0 beq _080743A0 ldr r0, _08074410 bl PlaySoundEffect _080743A0: adds r0, r5, 0 mov r1, r9 bl SendMessage movs r0, 0x1E movs r1, 0x32 bl sub_803E708 _080743B0: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _080743BE b _08074B2E _080743BE: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080743CA b _08074B2E _080743CA: ldr r0, _08074408 ldr r0, [r0] ldr r3, _08074414 adds r0, r3 ldrb r0, [r0] cmp r0, 0 bne _08074480 adds r0, r5, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _0807441C adds r0, r5, 0 movs r1, 0x6 bl sub_8071858 lsls r0, 24 cmp r0, 0 bne _08074466 ldr r0, _08074418 movs r4, 0 ldrsh r1, [r0, r4] movs r3, 0x88 lsls r3, 2 adds r0, r5, 0 movs r2, 0x12 bl sub_806F324 b _08074466 .align 2, 0 _08074408: .4byte gDungeonGlobalData _0807440C: .4byte 0x00000679 _08074410: .4byte 0x00000153 _08074414: .4byte 0x0000e266 _08074418: .4byte gUnknown_80F4F8E _0807441C: adds r0, r5, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08074466 adds r0, r5, 0 movs r1, 0x9 bl sub_8071858 lsls r0, 24 cmp r0, 0 bne _08074466 adds r0, r5, 0 movs r1, 0xD bl sub_8071858 lsls r0, 24 cmp r0, 0 bne _08074466 adds r0, r5, 0 movs r1, 0x11 bl sub_8071858 lsls r0, 24 cmp r0, 0 bne _08074466 ldr r0, _08074608 movs r2, 0 ldrsh r1, [r0, r2] movs r3, 0x88 lsls r3, 2 adds r0, r5, 0 movs r2, 0x12 bl sub_806F324 _08074466: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074474 b _08074B2E _08074474: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074480 b _08074B2E _08074480: movs r0, 0x64 bl DungeonRandomCapped adds r4, r0, 0 adds r0, r5, 0 movs r1, 0x21 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _080744D8 ldr r0, _0807460C movs r3, 0 ldrsh r0, [r0, r3] cmp r4, r0 bge _080744D8 adds r0, r5, 0 bl sub_8070A58 lsls r0, 24 cmp r0, 0 beq _080744D8 movs r0, 0 bl sub_807520C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _080744C0 b _08074B2E _080744C0: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080744CC b _08074B2E _080744CC: adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x1 movs r3, 0 bl sub_8079F20 _080744D8: adds r0, r5, 0 movs r1, 0xB bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _0807450C ldr r2, _08074610 add r2, r8 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] ldrb r1, [r2] ldr r0, _08074614 movs r4, 0 ldrsh r0, [r0, r4] cmp r1, r0 blt _0807450C movs r0, 0 strb r0, [r2] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x7F movs r3, 0 bl sub_8077910 _0807450C: mov r0, r8 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x4 bne _0807453C movs r0, 0 bl sub_807520C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0807452A b _08074B2E _0807452A: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074536 b _08074B2E _08074536: adds r0, r5, 0 bl sub_80420B8 _0807453C: mov r0, r8 adds r0, 0xAC ldrb r1, [r0] adds r6, r0, 0 cmp r1, 0x1 bne _080745B6 mov r4, r8 adds r4, 0xAE ldrb r0, [r4] cmp r0, 0 beq _0807455C subs r0, 0x1 strb r0, [r4] lsls r0, 24 cmp r0, 0 bne _0807459C _0807455C: movs r0, 0 bl sub_807520C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074570 b _08074B2E _08074570: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0807457C b _08074B2E _0807457C: ldr r0, _08074618 ldrh r0, [r0] strb r0, [r4] adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C ldr r0, _0807461C movs r2, 0 ldrsh r1, [r0, r2] movs r3, 0x82 lsls r3, 2 adds r0, r5, 0 movs r2, 0x1 bl sub_806F324 _0807459C: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _080745AA b _08074B2E _080745AA: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080745B6 b _08074B2E _080745B6: ldrb r0, [r6] cmp r0, 0x2 bne _08074628 mov r4, r8 adds r4, 0xAE ldrb r0, [r4] cmp r0, 0 beq _080745D0 subs r0, 0x1 strb r0, [r4] lsls r0, 24 cmp r0, 0 bne _08074696 _080745D0: movs r0, 0 bl sub_807520C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _080745E4 b _08074B2E _080745E4: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080745F0 b _08074B2E _080745F0: ldr r0, _08074620 ldrh r0, [r0] strb r0, [r4] adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C ldr r0, _08074624 movs r3, 0 ldrsh r1, [r0, r3] b _0807468C .align 2, 0 _08074608: .4byte gUnknown_80F4F8E _0807460C: .4byte gUnknown_80F4E0C _08074610: .4byte 0x00000113 _08074614: .4byte gUnknown_80F4F30 _08074618: .4byte gUnknown_80F4F32 _0807461C: .4byte gUnknown_80F4F70 _08074620: .4byte gUnknown_80F4F34 _08074624: .4byte gUnknown_80F4F72 _08074628: cmp r0, 0x3 bne _080746B0 mov r2, r8 adds r2, 0xAE ldrb r0, [r2] cmp r0, 0 beq _08074640 subs r0, 0x1 strb r0, [r2] lsls r0, 24 cmp r0, 0 bne _08074696 _08074640: mov r1, r8 adds r1, 0xAF ldrb r4, [r1] cmp r4, 0x1C bhi _0807464E adds r0, r4, 0x1 strb r0, [r1] _0807464E: ldr r0, _08074718 ldrh r0, [r0] strb r0, [r2] cmp r4, 0x1C ble _0807465A movs r4, 0x1D _0807465A: movs r0, 0 bl sub_807520C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0807466E b _08074B2E _0807466E: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0807467A b _08074B2E _0807467A: adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C ldr r1, _0807471C lsls r0, r4, 1 adds r0, r1 movs r4, 0 ldrsh r1, [r0, r4] _0807468C: ldr r3, _08074720 adds r0, r5, 0 movs r2, 0x3 bl sub_806F324 _08074696: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _080746A4 b _08074B2E _080746A4: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080746B0 b _08074B2E _080746B0: mov r0, r8 adds r0, 0xB0 ldrb r1, [r0] mov r10, r0 cmp r1, 0x7 bne _08074730 mov r4, r8 adds r4, 0xB9 ldrb r0, [r4] cmp r0, 0 beq _080746D0 subs r0, 0x1 strb r0, [r4] lsls r0, 24 cmp r0, 0 bne _08074786 _080746D0: movs r0, 0 bl sub_807520C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _080746E4 b _08074B2E _080746E4: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080746F0 b _08074B2E _080746F0: ldr r0, _08074724 ldrh r0, [r0] strb r0, [r4] adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C mov r0, r8 adds r0, 0xB4 ldr r1, [r0] adds r0, r5, 0 bl sub_8041C4C ldr r0, _08074728 movs r2, 0 ldrsh r1, [r0, r2] ldr r3, _0807472C adds r0, r5, 0 movs r2, 0x2 b _08074782 .align 2, 0 _08074718: .4byte gUnknown_80F4F36 _0807471C: .4byte gUnknown_80F4FC8 _08074720: .4byte 0x0000020a _08074724: .4byte gUnknown_80F4F38 _08074728: .4byte gUnknown_80F4F74 _0807472C: .4byte 0x00000209 _08074730: cmp r1, 0x4 bne _080747B0 mov r4, r8 adds r4, 0xB9 ldrb r0, [r4] cmp r0, 0 beq _08074748 subs r0, 0x1 strb r0, [r4] lsls r0, 24 cmp r0, 0 bne _08074786 _08074748: movs r0, 0 bl sub_807520C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0807475C b _08074B2E _0807475C: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074768 b _08074B2E _08074768: ldr r0, _080747A4 ldrh r0, [r0] strb r0, [r4] adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C ldr r0, _080747A8 movs r3, 0 ldrsh r1, [r0, r3] ldr r3, _080747AC adds r0, r5, 0 movs r2, 0x5 _08074782: bl sub_806F324 _08074786: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074794 b _08074B2E _08074794: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080747A0 b _08074B2E _080747A0: b _08074802 .align 2, 0 _080747A4: .4byte gUnknown_80F4F3A _080747A8: .4byte gUnknown_80F4F76 _080747AC: .4byte 0x0000020b _080747B0: cmp r1, 0x5 bne _08074802 mov r4, r8 adds r4, 0xB9 ldrb r0, [r4] cmp r0, 0 beq _080747C8 subs r0, 0x1 strb r0, [r4] lsls r0, 24 cmp r0, 0 bne _08074802 _080747C8: movs r0, 0 bl sub_807520C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _080747DC b _08074B2E _080747DC: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080747E8 b _08074B2E _080747E8: ldr r0, _080748D4 ldrh r0, [r0] strb r0, [r4] ldr r0, _080748D8 movs r4, 0 ldrsh r2, [r0, r4] movs r0, 0x1 str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 movs r3, 0 bl HealTargetHP _08074802: mov r0, r8 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x1 bne _0807488A mov r2, r8 adds r2, 0xCC ldrb r0, [r2] cmp r0, 0 beq _08074820 subs r0, 0x1 strb r0, [r2] lsls r0, 24 cmp r0, 0 bne _08074870 _08074820: mov r0, r8 movs r3, 0x10 ldrsh r1, [r0, r3] cmp r1, 0 bge _0807482C adds r1, 0x3 _0807482C: asrs r4, r1, 2 cmp r4, 0 bne _08074834 movs r4, 0x1 _08074834: ldr r0, _080748DC ldrh r0, [r0] strb r0, [r2] movs r0, 0 bl sub_807520C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0807484E b _08074B2E _0807484E: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0807485A b _08074B2E _0807485A: adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C movs r3, 0x83 lsls r3, 2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x7 bl sub_806F324 _08074870: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0807487E b _08074B2E _0807487E: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0807488A b _08074B2E _0807488A: mov r3, r8 adds r3, 0xD0 ldrb r4, [r3] mov r9, r4 cmp r4, 0x1 beq _08074898 b _080749AE _08074898: mov r2, r8 adds r2, 0xDA ldrb r0, [r2] cmp r0, 0 beq _080748AC subs r0, 0x1 strb r0, [r2] lsls r0, 24 cmp r0, 0 bne _08074994 _080748AC: ldr r0, _080748E0 movs r1, 0 ldrsh r6, [r0, r1] ldr r0, _080748E4 ldr r1, [r0] mov r0, r8 adds r0, 0xD8 ldrb r0, [r0] lsls r0, 2 ldr r4, _080748E8 adds r1, r4 adds r1, r0 ldr r4, [r1] ldr r0, _080748EC ldrh r0, [r0] strb r0, [r2] cmp r4, 0 bne _080748F0 strb r4, [r3] b _08074994 .align 2, 0 _080748D4: .4byte gUnknown_80F4F3C _080748D8: .4byte gUnknown_80F4FB2 _080748DC: .4byte gUnknown_80F4F3E _080748E0: .4byte gUnknown_80F4FB4 _080748E4: .4byte gDungeonGlobalData _080748E8: .4byte 0x000135cc _080748EC: .4byte gUnknown_80F4F40 _080748F0: ldr r0, [r4, 0x70] adds r0, 0x98 mov r1, r8 adds r1, 0xD4 ldr r2, [r0] ldr r0, [r1] cmp r2, r0 beq _08074906 movs r0, 0 strb r0, [r3] b _08074994 _08074906: adds r0, r5, 0 movs r1, 0x3A bl sub_8071824 lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0 bl sub_80444F4 movs r0, 0 bl sub_807520C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0807492C b _08074B2E _0807492C: adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0807493A b _08074B2E _0807493A: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074946 b _08074B2E _08074946: mov r1, r10 ldrb r0, [r1] cmp r0, 0x1 beq _08074994 adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C ldr r3, _08074980 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x9 bl sub_806F324 cmp r7, 0 beq _08074984 adds r0, r4, 0 adds r1, r4, 0 bl sub_807A96C movs r3, 0xFD lsls r3, 1 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0xD bl sub_806F324 b _08074994 .align 2, 0 _08074980: .4byte 0x0000020d _08074984: mov r2, r9 str r2, [sp] adds r0, r4, 0 adds r1, r4, 0 adds r2, r6, 0 movs r3, 0 bl HealTargetHP _08074994: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _080749A2 b _08074B2E _080749A2: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080749AE b _08074B2E _080749AE: mov r4, r8 adds r4, 0xFD ldrb r0, [r4] cmp r0, 0 beq _08074A46 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074A46 movs r0, 0 bl sub_807520C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _080749D8 b _08074B2E _080749D8: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _080749E4 b _08074B2E _080749E4: ldr r0, _08074A18 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08074A1C ldr r1, [r0] adds r0, r5, 0 bl SendMessage adds r0, r5, 0 adds r1, r5, 0 bl sub_807A96C mov r0, r8 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x7 bne _08074A24 ldr r0, _08074A20 ldr r1, [r0] adds r0, r5, 0 bl SendMessage b _08074A30 .align 2, 0 _08074A18: .4byte gUnknown_202DFE8 _08074A1C: .4byte gUnknown_80FEB30 _08074A20: .4byte gPtrProtectSavedItMessage _08074A24: ldr r1, _08074B40 ldr r3, _08074B44 adds r0, r5, 0 movs r2, 0xB bl sub_806F324 _08074A30: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08074B2E bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08074B2E _08074A46: mov r0, r8 adds r0, 0xC0 ldrb r1, [r0] adds r7, r0, 0 cmp r1, 0x1 bne _08074AD4 mov r4, r8 adds r4, 0xC1 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074AD4 strb r0, [r7] adds r0, r5, 0 movs r1, 0 bl sub_8070B6C lsls r0, 24 cmp r0, 0 bne _08074AD4 adds r0, r5, 0 movs r1, 0 bl sub_8070D04 lsls r0, 24 cmp r0, 0 bne _08074AD4 adds r0, r5, 0 bl sub_8070CD0 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _08074AD4 movs r0, 0 bl sub_807520C add r4, sp, 0x28 ldr r1, _08074B48 adds r0, r4, 0 bl sub_8092A88 ldrb r0, [r4] movs r1, 0x10 orrs r0, r1 strb r0, [r4] str r6, [sp] str r4, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_8055FA0 adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08074B2E bl sub_8044B28 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08074B2E mov r0, r8 adds r0, 0xA0 str r1, [r0] _08074AD4: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08074B2E bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08074B2E ldrb r0, [r7] cmp r0, 0xC bne _08074B1E mov r4, r8 adds r4, 0xC1 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074B1E strb r0, [r7] movs r1, 0xA5 lsls r1, 1 add r1, r8 strb r0, [r1] ldr r0, _08074B4C adds r1, r5, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08074B50 ldr r1, [r0] adds r0, r5, 0 bl SendMessage _08074B1E: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08074B2E bl sub_8044B28 _08074B2E: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08074B40: .4byte 0x0000270f _08074B44: .4byte 0x0000020e _08074B48: .4byte 0x00000165 _08074B4C: .4byte gAvailablePokemonNames _08074B50: .4byte gUnknown_80FABD8 thumb_func_end sub_8074094 thumb_func_start sub_8074B54 sub_8074B54: push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 cmp r7, 0 bne _08074B62 b _08074F96 _08074B62: bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074B6E b _08074F96 _08074B6E: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074B7A b _08074F96 _08074B7A: bl sub_805229C ldr r6, [r7, 0x70] movs r1, 0xA3 lsls r1, 1 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 bne _08074C48 adds r0, r6, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x2 beq _08074C48 cmp r0, 0x3 beq _08074C48 movs r4, 0 ldrb r0, [r6, 0x6] cmp r0, 0 bne _08074BAE movs r2, 0x2 ldrsh r0, [r6, r2] bl GetUnk1B lsls r0, 24 lsrs r4, r0, 24 _08074BAE: cmp r4, 0 beq _08074C48 adds r0, r7, 0 movs r1, 0xA bl sub_8046CB0 lsls r0, 24 cmp r0, 0 beq _08074BC8 ldr r0, _08074EF8 movs r3, 0 ldrsh r0, [r0, r3] adds r4, r0 _08074BC8: adds r0, r6, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x6 bne _08074BDA ldr r0, _08074EFC movs r1, 0 ldrsh r0, [r0, r1] adds r4, r0 _08074BDA: adds r0, r7, 0 movs r1, 0x3 bl sub_8071824 lsls r0, 24 cmp r0, 0 beq _08074BFE adds r0, r7, 0 bl sub_807E580 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _08074BFE ldr r0, _08074F00 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r0 _08074BFE: movs r0, 0xFA lsls r0, 1 cmp r4, r0 ble _08074C08 adds r4, r0, 0 _08074C08: cmp r4, 0x1D bgt _08074C0E movs r4, 0x1E _08074C0E: movs r3, 0xFC lsls r3, 1 adds r1, r6, r3 ldrh r0, [r6, 0x10] ldrh r2, [r1] adds r0, r2 strh r0, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, r4 blt _08074C38 _08074C24: ldrh r0, [r6, 0xE] adds r0, 0x1 strh r0, [r6, 0xE] ldrh r0, [r1] subs r0, r4 strh r0, [r1] movs r2, 0 ldrsh r0, [r1, r2] cmp r0, r4 bge _08074C24 _08074C38: movs r3, 0xE ldrsh r1, [r6, r3] ldrh r2, [r6, 0x10] movs r3, 0x10 ldrsh r0, [r6, r3] cmp r1, r0 blt _08074C48 strh r2, [r6, 0xE] _08074C48: adds r0, r6, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0 beq _08074C6E adds r4, r6, 0 adds r4, 0xA9 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074C6E adds r0, r7, 0 adds r1, r7, 0 movs r2, 0x1 movs r3, 0x1 bl sub_807A124 _08074C6E: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074C7C b _08074F96 _08074C7C: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074C88 b _08074F96 _08074C88: adds r0, r6, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0 beq _08074CAA adds r4, r6, 0 adds r4, 0xAD adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074CAA adds r0, r7, 0 adds r1, r7, 0 bl sub_807A290 _08074CAA: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074CB8 b _08074F96 _08074CB8: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074CC4 b _08074F96 _08074CC4: adds r0, r6, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0 beq _08074CE6 adds r4, r6, 0 adds r4, 0xB8 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074CE6 adds r0, r7, 0 adds r1, r7, 0 bl SendImmobilizeEndMessage _08074CE6: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074CF4 b _08074F96 _08074CF4: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074D00 b _08074F96 _08074D00: adds r0, r6, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0 beq _08074D22 adds r4, r6, 0 adds r4, 0xBD adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074D22 adds r0, r7, 0 adds r1, r7, 0 bl sub_807A400 _08074D22: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074D30 b _08074F96 _08074D30: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074D3C b _08074F96 _08074D3C: adds r0, r6, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0 beq _08074D5E adds r4, r6, 0 adds r4, 0xC5 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074D5E adds r0, r7, 0 adds r1, r7, 0 bl sub_807A4C8 _08074D5E: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074D6C b _08074F96 _08074D6C: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074D78 b _08074F96 _08074D78: adds r0, r6, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0 beq _08074D9C adds r4, r6, 0 adds r4, 0xCB adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074D9C adds r0, r7, 0 adds r1, r7, 0 movs r2, 0 bl sub_807A5D0 _08074D9C: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074DAA b _08074F96 _08074DAA: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074DB6 b _08074F96 _08074DB6: adds r0, r6, 0 adds r0, 0xD0 ldrb r0, [r0] cmp r0, 0 beq _08074DD8 adds r4, r6, 0 adds r4, 0xD9 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074DD8 adds r0, r7, 0 adds r1, r7, 0 bl sub_807A6C8 _08074DD8: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074DE6 b _08074F96 _08074DE6: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074DF2 b _08074F96 _08074DF2: adds r0, r6, 0 adds r0, 0xDC ldrb r0, [r0] cmp r0, 0 beq _08074E14 adds r4, r6, 0 adds r4, 0xDD adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074E14 adds r0, r7, 0 adds r1, r7, 0 bl sub_807A734 _08074E14: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074E22 b _08074F96 _08074E22: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074E2E b _08074F96 _08074E2E: adds r0, r6, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0 beq _08074E50 adds r4, r6, 0 adds r4, 0xE5 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074E50 adds r0, r7, 0 adds r1, r7, 0 bl sub_807A7C8 _08074E50: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074E5E b _08074F96 _08074E5E: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08074E6A b _08074F96 _08074E6A: adds r0, r6, 0 adds r0, 0xE8 ldrb r0, [r0] cmp r0, 0 beq _08074E8C adds r4, r6, 0 adds r4, 0xE9 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074E8C adds r0, r7, 0 adds r1, r7, 0 bl sub_807A888 _08074E8C: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08074E9A b _08074F96 _08074E9A: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08074F96 adds r0, r6, 0 adds r0, 0xEC ldrb r0, [r0] cmp r0, 0 beq _08074EC6 adds r4, r6, 0 adds r4, 0xED adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074EC6 adds r0, r7, 0 adds r1, r7, 0 bl sub_807A924 _08074EC6: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08074F96 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08074F96 adds r4, r6, 0 adds r4, 0xFA ldrb r0, [r4] cmp r0, 0 beq _08074F18 adds r0, r4, 0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074F18 ldr r0, _08074F04 adds r1, r7, 0 b _08074F08 .align 2, 0 _08074EF8: .4byte gUnknown_80F4FC4 _08074EFC: .4byte gUnknown_80F4FC0 _08074F00: .4byte gUnknown_80F4FC2 _08074F04: .4byte gAvailablePokemonNames _08074F08: movs r2, 0 bl SetMessageArgument ldr r0, _08074FA0 ldr r1, [r0] adds r0, r7, 0 bl SendMessage _08074F18: movs r0, 0 mov r8, r0 movs r5, 0 _08074F1E: ldr r1, _08074FA4 adds r0, r6, r1 adds r4, r0, r5 ldrb r0, [r4] cmp r0, 0 beq _08074F3C adds r0, r5, r1 adds r0, r6, r0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074F3C movs r2, 0x1 mov r8, r2 _08074F3C: movs r3, 0x84 lsls r3, 1 adds r0, r6, r3 adds r4, r0, r5 ldrb r0, [r4] cmp r0, 0 beq _08074F5C adds r0, r5, r3 adds r0, r6, r0 bl sub_80838EC ldrb r0, [r4] cmp r0, 0 bne _08074F5C movs r0, 0x1 mov r8, r0 _08074F5C: adds r5, 0x1 cmp r5, 0x4 ble _08074F1E mov r1, r8 cmp r1, 0 beq _08074F96 ldr r0, [r7, 0x70] movs r2, 0x82 lsls r2, 1 adds r0, r2 ldr r4, [r0] adds r0, r7, 0 bl sub_8070774 adds r5, r0, 0 cmp r4, r5 beq _08074F96 ldr r0, _08074FA8 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument ldr r1, _08074FAC lsls r0, r5, 2 adds r0, r1 ldr r1, [r0] adds r0, r7, 0 bl SendMessage _08074F96: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08074FA0: .4byte gPtrStenchWavedOffMessage _08074FA4: .4byte 0x0000010d _08074FA8: .4byte gAvailablePokemonNames _08074FAC: .4byte gUnknown_80FA124 thumb_func_end sub_8074B54 thumb_func_start sub_8074FB0 sub_8074FB0: push {r4-r6,lr} adds r3, r0, 0 adds r5, r1, 0 ldr r4, [r3, 0x70] movs r1, 0xFA lsls r1, 1 adds r0, r4, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x3 ble _08074FD0 adds r1, r4, 0 adds r1, 0x44 movs r0, 0 strh r0, [r1] b _08075040 _08074FD0: ldr r0, _08074FE0 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0 beq _08074FE8 ldr r1, _08074FE4 movs r0, 0x2 b _08074FEC .align 2, 0 _08074FE0: .4byte gUnknown_203B46C _08074FE4: .4byte gUnknown_202F378 _08074FE8: ldr r1, _08075048 movs r0, 0x1 _08074FEC: str r0, [r1] adds r6, r1, 0 movs r1, 0xFA lsls r1, 1 adds r0, r4, r1 movs r1, 0 ldrsh r0, [r0, r1] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 movs r0, 0xC2 lsls r0, 1 adds r1, r0 adds r1, r4, r1 movs r0, 0 strb r0, [r1, 0x1A] str r5, [r1, 0xC] ldrh r0, [r3, 0x4] strh r0, [r1] ldrh r0, [r3, 0x6] strh r0, [r1, 0x2] movs r3, 0 ldrsh r0, [r2, r3] str r0, [r1, 0x4] movs r3, 0x2 ldrsh r0, [r2, r3] str r0, [r1, 0x8] ldr r0, _0807504C lsls r2, r5, 2 adds r2, r0 movs r5, 0 ldrsh r0, [r2, r5] ldr r3, [r6] muls r0, r3 str r0, [r1, 0x10] movs r5, 0x2 ldrsh r0, [r2, r5] muls r0, r3 str r0, [r1, 0x14] adds r0, r4, 0 bl sub_8075050 _08075040: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08075048: .4byte gUnknown_202F378 _0807504C: .4byte gUnknown_80F4D44 thumb_func_end sub_8074FB0 thumb_func_start sub_8075050 sub_8075050: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r0 adds r6, r1, 0 ldr r0, _08075070 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0 beq _08075078 ldr r1, _08075074 movs r0, 0x2 b _0807507C .align 2, 0 _08075070: .4byte gUnknown_203B46C _08075074: .4byte gUnknown_202F378 _08075078: ldr r1, _080750D0 movs r0, 0x1 _0807507C: str r0, [r1] movs r1, 0xFA lsls r1, 1 add r1, r9 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080750D4 ldr r0, _080750D0 ldr r1, [r0] lsls r1, 1 movs r0, 0x18 bl __divsi3 movs r1, 0xCE lsls r1, 1 add r1, r9 strh r0, [r1] movs r2, 0xCA lsls r2, 1 add r2, r9 ldr r1, [r2] lsls r1, 1 str r1, [r2] movs r2, 0xCC lsls r2, 1 add r2, r9 ldr r1, [r2] lsls r1, 1 str r1, [r2] strh r0, [r6, 0x18] ldr r0, [r6, 0x10] lsls r0, 1 str r0, [r6, 0x10] ldr r0, [r6, 0x14] lsls r0, 1 str r0, [r6, 0x14] b _080751F8 .align 2, 0 _080750D0: .4byte gUnknown_202F378 _080750D4: cmp r0, 0x3 bne _08075160 ldr r1, [r6, 0x10] str r1, [sp] ldr r0, [r6, 0x14] str r0, [sp, 0x4] movs r4, 0xCE lsls r4, 1 add r4, r9 movs r5, 0 movs r7, 0x1 _080750EA: ldr r1, _0807515C ldr r0, [r1] lsls r1, r0, 1 adds r1, r0 movs r0, 0x18 bl __divsi3 strh r0, [r4] movs r3, 0xCA lsls r3, 1 add r3, r9 adds r3, r5 ldr r1, [r3] lsls r0, r1, 1 adds r0, r1 str r0, [r3] movs r2, 0xCC lsls r2, 1 add r2, r9 adds r2, r5 ldr r1, [r2] lsls r0, r1, 1 adds r0, r1 str r0, [r2] ldr r0, [r3] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [r3] ldr r0, [r2] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [r2] adds r4, 0x1C adds r5, 0x1C subs r7, 0x1 cmp r7, 0 bge _080750EA ldr r1, _0807515C ldr r0, [r1] lsls r1, r0, 1 adds r1, r0 movs r0, 0x18 bl __divsi3 strh r0, [r6, 0x18] ldr r1, [sp] lsls r0, r1, 1 adds r0, r1 str r0, [r6, 0x10] ldr r1, [sp, 0x4] lsls r0, r1, 1 adds r0, r1 str r0, [r6, 0x14] b _080751F8 .align 2, 0 _0807515C: .4byte gUnknown_202F378 _08075160: cmp r0, 0x4 bne _080751EC ldr r0, [r6, 0x10] str r0, [sp] ldr r1, [r6, 0x14] str r1, [sp, 0x4] movs r7, 0xCE lsls r7, 1 add r7, r9 movs r0, 0 mov r8, r0 movs r1, 0x2 mov r10, r1 _0807517A: ldr r0, _080751E8 ldr r1, [r0] lsls r1, 2 movs r0, 0x18 bl __divsi3 strh r0, [r7] movs r4, 0xCA lsls r4, 1 add r4, r9 add r4, r8 ldr r0, [r4] lsls r0, 2 str r0, [r4] movs r5, 0xCC lsls r5, 1 add r5, r9 add r5, r8 ldr r0, [r5] lsls r0, 2 str r0, [r5] ldr r0, [r4] movs r1, 0x3 bl __divsi3 str r0, [r4] ldr r0, [r5] movs r1, 0x3 bl __divsi3 str r0, [r5] adds r7, 0x1C movs r1, 0x1C add r8, r1 movs r0, 0x1 negs r0, r0 add r10, r0 mov r1, r10 cmp r1, 0 bge _0807517A ldr r0, _080751E8 ldr r1, [r0] lsls r1, 2 movs r0, 0x18 bl __divsi3 strh r0, [r6, 0x18] ldr r1, [sp] lsls r0, r1, 2 str r0, [r6, 0x10] ldr r1, [sp, 0x4] lsls r0, r1, 2 str r0, [r6, 0x14] b _080751F8 .align 2, 0 _080751E8: .4byte gUnknown_202F378 _080751EC: ldr r0, _08075208 ldr r1, [r0] movs r0, 0x18 bl __divsi3 strh r0, [r6, 0x18] _080751F8: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08075208: .4byte gUnknown_202F378 thumb_func_end sub_8075050 thumb_func_start sub_807520C sub_807520C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 mov r10, r0 movs r7, 0 movs r0, 0 mov r9, r0 ldr r0, _08075238 mov r1, r9 strb r1, [r0] ldr r0, _0807523C ldr r0, [r0] ldrb r0, [r0] cmp r0, 0 beq _08075244 ldr r1, _08075240 movs r0, 0x2 b _08075248 .align 2, 0 _08075238: .4byte gUnknown_202F32D _0807523C: .4byte gUnknown_203B46C _08075240: .4byte gUnknown_202F378 _08075244: ldr r1, _080752D0 movs r0, 0x1 _08075248: str r0, [r1] movs r2, 0 mov r8, r2 _0807524E: ldr r0, _080752D4 ldr r0, [r0] mov r3, r8 lsls r1, r3, 2 ldr r4, _080752D8 adds r0, r4 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0807534C ldr r4, [r5, 0x70] movs r1, 0xFA lsls r1, 1 adds r0, r4, r1 movs r3, 0 ldrsh r2, [r0, r3] cmp r2, 0 bne _080752E0 ldr r0, _080752DC adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0 beq _0807534C strb r2, [r1] movs r1, 0xB6 lsls r1, 1 adds r6, r4, r1 ldr r1, [r6] cmp r1, 0 beq _0807534C ldr r0, [r5, 0x4] cmp r1, r0 beq _0807534C adds r0, r5, 0 movs r1, 0x1 bl sub_8070B6C lsls r0, 24 cmp r0, 0 beq _080752B2 adds r0, r5, 0 bl sub_8070CD0 lsls r0, 24 cmp r0, 0 bne _0807534C _080752B2: adds r0, r5, 0x4 adds r1, r6, 0 bl sub_80983D8 adds r1, r0, 0 adds r0, r4, 0 adds r0, 0x46 ldrb r0, [r0] cmp r1, r0 beq _0807534C adds r0, r5, 0 bl sub_806CE68 b _0807534C .align 2, 0 _080752D0: .4byte gUnknown_202F378 _080752D4: .4byte gDungeonGlobalData _080752D8: .4byte 0x000135cc _080752DC: .4byte 0x00000147 _080752E0: ldrh r1, [r4] movs r2, 0x80 lsls r2, 6 adds r0, r2, 0 orrs r0, r1 strh r0, [r4] movs r3, 0xC4 lsls r3, 1 adds r0, r4, r3 ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r1, 0xC0 lsls r1, 4 adds r0, r1 str r0, [sp] movs r2, 0xC6 lsls r2, 1 adds r0, r4, r2 ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r3, 0x80 lsls r3, 5 adds r0, r3 str r0, [sp, 0x4] adds r0, r5, 0 mov r1, sp bl sub_804535C movs r1, 0xC8 lsls r1, 1 adds r0, r4, r1 ldr r2, [r0] adds r0, r5, 0 movs r1, 0 bl sub_806CDFC movs r2, 0xFB lsls r2, 1 adds r0, r4, r2 movs r3, 0 strh r3, [r0] movs r7, 0x1 adds r0, r5, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0807534C movs r4, 0x1 mov r9, r4 _0807534C: movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x13 bgt _08075358 b _0807524E _08075358: cmp r7, 0 bne _08075360 movs r0, 0 b _0807566C _08075360: ldr r0, _08075390 ldr r0, [r0] adds r1, r0, 0 adds r1, 0xB8 ldr r2, [r1] str r2, [sp, 0x10] mov r3, r10 str r3, [r1] ldr r4, _08075394 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0807537C b _080754AE _0807537C: mov r0, r9 cmp r0, 0 bne _08075384 b _080754AE _08075384: movs r0, 0x35 bl sub_80526D0 movs r5, 0 b _0807549E .align 2, 0 _08075390: .4byte gDungeonGlobalData _08075394: .4byte 0x0000066c _08075398: movs r0, 0x7 bl sub_803E46C movs r1, 0 mov r8, r1 adds r5, 0x1 mov r9, r5 _080753A6: ldr r0, _08075420 ldr r0, [r0] mov r2, r8 lsls r1, r2, 2 ldr r3, _08075424 adds r0, r3 adds r0, r1 ldr r3, [r0] adds r0, r3, 0 str r3, [sp, 0x14] bl EntityExists lsls r0, 24 ldr r3, [sp, 0x14] cmp r0, 0 beq _08075492 ldr r0, [r3, 0x70] adds r7, r0, 0 movs r4, 0xFB lsls r4, 1 adds r5, r7, r4 movs r1, 0 ldrsh r0, [r5, r1] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 movs r2, 0xC2 lsls r2, 1 adds r1, r2 adds r4, r7, r1 movs r0, 0xFA lsls r0, 1 adds r6, r7, r0 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 beq _08075492 ldr r1, [r4, 0x10] ldr r2, [r4, 0x14] adds r0, r3, 0 bl sub_804539C ldrh r0, [r4, 0x18] subs r0, 0x1 strh r0, [r4, 0x18] lsls r0, 16 asrs r2, r0, 16 ldr r3, [sp, 0x14] cmp r2, 0 bne _08075492 ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] lsls r0, 16 asrs r0, 16 movs r4, 0 ldrsh r1, [r6, r4] cmp r0, r1 bne _08075428 strh r2, [r6] b _08075492 .align 2, 0 _08075420: .4byte gDungeonGlobalData _08075424: .4byte 0x000135cc _08075428: movs r0, 0 ldrsh r1, [r5, r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 movs r2, 0xC4 lsls r2, 1 adds r1, r7, r2 adds r1, r0 ldr r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r4, 0xC0 lsls r4, 4 adds r0, r4 str r0, [sp, 0x8] movs r0, 0 ldrsh r1, [r5, r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r2, 0x4 adds r1, r7, r2 adds r1, r0 ldr r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r4, 0x80 lsls r4, 5 adds r0, r4 add r1, sp, 0x8 str r0, [r1, 0x4] adds r0, r3, 0 str r3, [sp, 0x14] bl sub_804535C movs r0, 0 ldrsh r1, [r5, r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 movs r2, 0xC8 lsls r2, 1 adds r1, r7, r2 adds r1, r0 ldr r2, [r1] ldr r3, [sp, 0x14] adds r0, r3, 0 movs r1, 0 bl sub_806CDFC _08075492: movs r3, 0x1 add r8, r3 mov r4, r8 cmp r4, 0x13 ble _080753A6 mov r5, r9 _0807549E: ldr r0, _08075510 ldr r1, [r0] movs r0, 0x18 bl __divsi3 cmp r5, r0 bge _080754AE b _08075398 _080754AE: movs r0, 0 mov r8, r0 _080754B2: ldr r0, _08075514 ldr r0, [r0] mov r2, r8 lsls r1, r2, 2 ldr r3, _08075518 adds r0, r3 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080754F6 ldr r4, [r5, 0x70] movs r0, 0xFA lsls r0, 1 adds r1, r4, r0 movs r0, 0 strh r0, [r1] adds r0, r5, 0 bl nullsub_97 ldrh r0, [r4] movs r2, 0x80 lsls r2, 6 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _080754F6 adds r0, r5, 0 movs r1, 0 bl sub_804535C _080754F6: movs r3, 0x1 add r8, r3 mov r4, r8 cmp r4, 0x13 ble _080754B2 bl sub_807AA30 movs r7, 0 _08075506: movs r5, 0 adds r0, r7, 0x1 mov r8, r0 b _08075600 .align 2, 0 _08075510: .4byte gUnknown_202F378 _08075514: .4byte gDungeonGlobalData _08075518: .4byte 0x000135cc _0807551C: ldr r2, [r4, 0x70] cmp r7, 0 bne _0807552A ldrb r0, [r2, 0x7] cmp r0, 0 beq _080755FE b _08075530 _0807552A: ldrb r0, [r2, 0x7] cmp r0, 0 bne _080755FE _08075530: ldr r6, [r4, 0x4] ldrh r1, [r2] movs r3, 0x80 lsls r3, 6 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080755BC ldr r3, _08075560 adds r0, r3, 0 ands r0, r1 strh r0, [r2] ldrb r0, [r2, 0x7] cmp r0, 0 beq _08075564 adds r0, r4, 0x4 bl sub_804AC20 movs r0, 0 bl sub_807EC28 bl sub_805EE30 b _0807556A .align 2, 0 _08075560: .4byte 0x0000dfff _08075564: adds r0, r4, 0 bl sub_8075708 _0807556A: adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080755FE bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807562A movs r0, 0 bl sub_8043ED0 adds r0, r4, 0 bl sub_8074094 adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080755FE bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807562A adds r0, r4, 0 bl sub_8071DA4 bl sub_8046D20 ldr r0, _08075650 ldr r0, [r0] ldr r1, _08075654 adds r0, r1 ldrb r1, [r0] adds r0, r4, 0 bl sub_8075900 _080755BC: adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080755FE bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807562A ldr r0, [r4, 0x4] cmp r6, r0 beq _080755DE ldr r1, _08075658 movs r0, 0x1 strb r0, [r1] _080755DE: adds r0, r4, 0 bl sub_806A5B8 adds r1, r4, 0x4 adds r0, r4, 0 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _080755FE adds r0, r4, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _080755FE: adds r5, 0x1 _08075600: cmp r5, 0x13 bgt _0807562A ldr r0, _08075650 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0807565C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080755FE bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807562A b _0807551C _0807562A: mov r7, r8 cmp r7, 0x1 bgt _08075632 b _08075506 _08075632: bl sub_8086AC0 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08075660 bl sub_8085140 ldr r0, _08075650 ldr r0, [r0] adds r0, 0xB8 ldr r3, [sp, 0x10] str r3, [r0] b _0807566A .align 2, 0 _08075650: .4byte gDungeonGlobalData _08075654: .4byte 0x00003a08 _08075658: .4byte gUnknown_202F32D _0807565C: .4byte 0x000135cc _08075660: ldr r0, _0807567C ldr r0, [r0] adds r0, 0xB8 ldr r4, [sp, 0x10] str r4, [r0] _0807566A: movs r0, 0x1 _0807566C: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0807567C: .4byte gDungeonGlobalData thumb_func_end sub_807520C thumb_func_start sub_8075680 sub_8075680: push {r4-r7,lr} movs r7, 0 _08075684: ldr r0, _080756FC ldr r0, [r0] lsls r1, r7, 2 ldr r2, _08075700 adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080756EE ldr r6, [r5, 0x70] ldrb r0, [r6, 0x7] cmp r0, 0 bne _080756EE movs r0, 0xB6 lsls r0, 1 adds r4, r6, r0 ldr r1, [r4] cmp r1, 0 beq _080756EE ldr r0, [r5, 0x4] cmp r1, r0 beq _080756EE adds r0, r5, 0 movs r1, 0x1 bl sub_8070B6C lsls r0, 24 cmp r0, 0 bne _080756EE adds r0, r5, 0x4 adds r1, r4, 0 bl sub_80983D8 adds r4, r0, 0 movs r1, 0x7 ands r0, r1 adds r1, r6, 0 adds r1, 0x46 strb r0, [r1] adds r0, r5, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 adds r2, r4, 0 bl sub_806CDD4 _080756EE: adds r7, 0x1 cmp r7, 0x13 ble _08075684 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080756FC: .4byte gDungeonGlobalData _08075700: .4byte 0x000135cc thumb_func_end sub_8075680 thumb_func_start nullsub_97 nullsub_97: bx lr thumb_func_end nullsub_97 thumb_func_start sub_8075708 sub_8075708: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 ldr r6, [r4, 0x70] bl EntityExists lsls r0, 24 cmp r0, 0 beq _0807580C adds r0, r4, 0 bl sub_8045128 adds r5, r0, 0 adds r0, r4, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08075752 adds r0, r6, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _08075752 adds r0, r4, 0 movs r1, 0x9 bl sub_8046CB0 lsls r0, 24 cmp r0, 0 bne _08075752 adds r0, r4, 0x4 bl sub_804AE84 _08075752: ldr r5, [r5, 0x14] cmp r5, 0 beq _0807580C adds r0, r5, 0 bl sub_80450F8 cmp r0, 0x5 bhi _0807580C lsls r0, 2 ldr r1, _0807576C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807576C: .4byte _08075770 .align 2, 0 _08075770: .4byte _0807580C .4byte _0807580C .4byte _08075788 .4byte _08075806 .4byte _0807580C .4byte _0807580C _08075788: adds r0, r5, 0 bl sub_8045104 adds r7, r0, 0 movs r0, 0 mov r8, r0 mov r9, r0 adds r0, r4, 0 movs r1, 0x13 bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _080757BA adds r1, r5, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0 bne _080757BA movs r0, 0x1 strb r0, [r1] bl sub_8049ED4 movs r0, 0x1 mov r9, r0 _080757BA: ldrb r0, [r7, 0x1] cmp r0, 0 bne _080757D2 adds r0, r5, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _080757EC ldrb r0, [r6, 0x6] cmp r0, 0 bne _080757EC b _080757F2 _080757D2: cmp r0, 0x1 bne _080757DE ldrb r0, [r6, 0x6] cmp r0, 0 beq _080757EC b _080757F2 _080757DE: cmp r0, 0x2 bne _080757EC ldrb r0, [r6, 0x6] cmp r0, 0 bne _080757EC movs r0, 0x1 mov r8, r0 _080757EC: mov r0, r8 cmp r0, 0 beq _0807580C _080757F2: mov r0, r9 cmp r0, 0 bne _0807580C adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_807FE9C b _0807580C _08075806: adds r0, r4, 0 bl sub_8073D14 _0807580C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8075708 thumb_func_start sub_8075818 sub_8075818: push {r4-r6,lr} adds r4, r0, 0 ldr r6, [r4, 0x70] bl EntityExists lsls r0, 24 cmp r0, 0 beq _080758F6 adds r0, r4, 0 bl sub_8045128 adds r5, r0, 0 adds r0, r4, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08075848 ldrh r1, [r5] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080758F2 _08075848: ldr r4, [r5, 0x14] cmp r4, 0 beq _080758F6 adds r0, r4, 0 bl sub_80450F8 cmp r0, 0x5 bhi _080758F6 lsls r0, 2 ldr r1, _08075864 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08075864: .4byte _08075868 .align 2, 0 _08075868: .4byte _080758F6 .4byte _080758F6 .4byte _08075880 .4byte _080758BE .4byte _080758F6 .4byte _080758F6 _08075880: adds r0, r4, 0 bl sub_8045104 movs r1, 0 ldrb r0, [r0, 0x1] cmp r0, 0 bne _080758A0 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _080758B8 ldrb r0, [r6, 0x6] cmp r0, 0 bne _080758B8 b _080758F2 _080758A0: cmp r0, 0x1 bne _080758AC ldrb r0, [r6, 0x6] cmp r0, 0 beq _080758B8 b _080758F2 _080758AC: cmp r0, 0x2 bne _080758B8 ldrb r0, [r6, 0x6] cmp r0, 0 bne _080758B8 movs r1, 0x1 _080758B8: cmp r1, 0 beq _080758F6 b _080758F2 _080758BE: ldrb r0, [r6, 0x7] cmp r0, 0 bne _080758F6 adds r0, r6, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080758F6 ldrh r1, [r5] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _080758E2 ldrb r0, [r6, 0x6] cmp r0, 0 bne _080758F6 _080758E2: adds r0, r4, 0 bl sub_8045108 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080758F6 _080758F2: movs r0, 0x1 b _080758F8 _080758F6: movs r0, 0 _080758F8: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8075818 thumb_func_start sub_8075900 sub_8075900: push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0807597A ldr r0, [r4, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 bne _0807597A bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0807597A ldr r5, _08075980 ldr r0, [r5] ldr r1, _08075984 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0807597A adds r0, r4, 0 bl sub_8045128 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0807597A bl sub_8083600 ldr r1, _08075988 ldr r1, [r1] bl SendMessage ldr r0, [r5] ldr r1, _0807598C adds r0, r1 movs r1, 0x1 strb r1, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_807AB38 movs r0, 0 bl sub_8041888 adds r0, r4, 0x4 bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _0807597A movs r0, 0x78 movs r1, 0x39 bl sub_803E708 _0807597A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08075980: .4byte gDungeonGlobalData _08075984: .4byte 0x00000671 _08075988: .4byte gUnknown_80FE308 _0807598C: .4byte 0x00000672 thumb_func_end sub_8075900