.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start GyorgFemale GyorgFemale: @ 0x08046134 push {lr} ldr r2, _08046148 @ =gUnk_080D1A64 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08046148: .4byte gUnk_080D1A64 thumb_func_start sub_0804614C sub_0804614C: @ 0x0804614C push {r4, r5, r6, lr} adds r6, r0, #0 ldr r0, _08046248 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x3d bhi _08046244 movs r0, #0x22 bl sub_080A7EE0 adds r1, r0, #0 movs r4, #0 strb r4, [r1, #0xa] str r6, [r1, #0x50] ldr r0, [r6, #0x64] str r1, [r0, #0x14] movs r0, #0x63 movs r1, #0 bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] ldr r0, [r6, #0x64] str r1, [r0, #0x10] movs r0, #0x61 movs r1, #0 bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #1 bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #2 bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #3 bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #4 bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #5 bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #6 bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #7 bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #1 strb r0, [r6, #0xc] ldrb r2, [r6, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x80 orrs r0, r2 strb r0, [r6, #0x1b] ldrb r0, [r6, #0x19] ands r1, r0 orrs r1, r2 strb r1, [r6, #0x19] adds r0, r6, #0 adds r0, #0x38 movs r5, #2 strb r5, [r0] adds r0, #0x40 strb r4, [r0] adds r0, #1 strb r4, [r0] adds r1, r6, #0 adds r1, #0x70 movs r0, #0x3c strh r0, [r1] ldr r0, _0804624C @ =gUnk_02019EE0 movs r4, #0x80 lsls r4, r4, #8 adds r1, r4, #0 bl _DmaZero ldr r0, _08046250 @ =gUnk_02002F00 adds r1, r4, #0 bl _DmaZero adds r0, r6, #0 movs r1, #0 bl sub_0804660C adds r0, r6, #0 bl sub_080464C0 ldr r0, _08046254 @ =gLinkEntity adds r1, r0, #0 adds r1, #0x38 strb r5, [r1] bl UpdateSpriteForCollisionLayer ldr r1, _08046258 @ =sub_08046498 adds r0, r6, #0 movs r2, #0 bl sub_08052D74 _08046244: pop {r4, r5, r6, pc} .align 2, 0 _08046248: .4byte gUnk_03003DBC _0804624C: .4byte gUnk_02019EE0 _08046250: .4byte gUnk_02002F00 _08046254: .4byte gLinkEntity _08046258: .4byte sub_08046498 thumb_func_start sub_0804625C sub_0804625C: @ 0x0804625C push {r4, lr} adds r4, r0, #0 adds r3, r4, #0 adds r3, #0x79 ldrb r2, [r3] movs r0, #0x80 ands r0, r2 cmp r0, #0 beq _08046286 movs r1, #0x7f ands r1, r2 movs r0, #0x40 orrs r1, r0 strb r1, [r3] movs r0, #3 ands r1, r0 lsls r1, r1, #6 adds r0, r4, #0 bl sub_0804660C b _0804629A _08046286: movs r0, #0x40 ands r0, r2 cmp r0, #0 beq _0804629A movs r0, #0xbf ands r0, r2 strb r0, [r3] adds r0, r4, #0 bl sub_080464C0 _0804629A: bl sub_080465C8 ldr r0, [r4, #0x64] ldr r0, [r0] adds r0, #0x6c ldrh r1, [r0] movs r3, #0x38 ands r3, r1 cmp r3, #0 beq _080462D6 movs r1, #0 movs r0, #2 strb r0, [r4, #0xc] strb r1, [r4, #0xe] adds r0, r4, #0 adds r0, #0x7a movs r2, #0 strh r1, [r0] adds r0, #2 strb r2, [r0] adds r0, #1 strb r2, [r0] adds r1, r4, #0 adds r1, #0x70 movs r0, #0x3c strh r0, [r1] adds r0, r4, #0 adds r0, #0x80 strb r2, [r0] b _0804632A _080462D6: movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _08046302 movs r0, #3 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x70 movs r1, #0 movs r0, #0x3c strh r0, [r2] strb r1, [r4, #0xe] adds r0, r4, #0 adds r0, #0x7a strh r3, [r0] adds r0, #2 strb r1, [r0] adds r0, #1 strb r1, [r0] adds r0, #3 strb r1, [r0] b _0804632A _08046302: movs r0, #0x80 lsls r0, r0, #1 ands r0, r1 cmp r0, #0 beq _0804632A adds r1, r4, #0 adds r1, #0x70 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0804632A movs r0, #0xb4 lsls r0, r0, #1 strh r0, [r1] adds r0, r4, #0 movs r1, #1 bl sub_08046634 _0804632A: pop {r4, pc} thumb_func_start sub_0804632C sub_0804632C: @ 0x0804632C push {r4, r5, lr} adds r4, r0, #0 bl sub_080465C8 adds r0, r4, #0 bl sub_080466A8 adds r3, r4, #0 adds r3, #0x7a ldrh r0, [r3] adds r2, r0, #1 movs r5, #0 strh r2, [r3] lsls r1, r2, #0x10 ldr r0, _08046360 @ =0x059F0000 cmp r1, r0 bls _08046364 movs r0, #0 strh r0, [r3] adds r0, r4, #0 adds r0, #0x7c strb r5, [r0] adds r0, #1 strb r5, [r0] adds r0, #3 b _08046388 .align 2, 0 _08046360: .4byte 0x059F0000 _08046364: lsls r0, r2, #0x10 lsrs r1, r0, #0x10 cmp r1, #0x78 bne _08046374 adds r0, r4, #0 bl sub_08046668 b _0804638A _08046374: movs r0, #0xa5 lsls r0, r0, #3 cmp r1, r0 bne _0804638A adds r0, r4, #0 adds r0, #0x78 strb r5, [r0] adds r0, #5 strb r5, [r0] adds r0, #2 _08046388: strb r5, [r0] _0804638A: ldr r0, [r4, #0x64] ldr r0, [r0] adds r0, #0x6c ldrh r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080463B8 adds r1, r4, #0 adds r1, #0x70 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080463B8 movs r0, #0xb4 lsls r0, r0, #1 strh r0, [r1] adds r0, r4, #0 movs r1, #0 bl sub_08046634 _080463B8: ldr r0, [r4, #0x64] ldr r0, [r0] adds r0, #0x6c ldrh r1, [r0] movs r0, #0x38 ands r0, r1 cmp r0, #0 bne _080463E0 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x70 movs r2, #0 movs r0, #0x3c strh r0, [r1] adds r0, r4, #0 adds r0, #0x78 strb r2, [r0] adds r0, #8 strb r2, [r0] _080463E0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080463E4 sub_080463E4: @ 0x080463E4 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_080465C8 adds r1, r4, #0 adds r1, #0x70 ldrh r0, [r1] subs r0, #1 movs r5, #0 strh r0, [r1] ldr r2, _0804643C @ =0x0000FFFF adds r6, r2, #0 lsls r0, r0, #0x10 cmp r0, #0 bne _08046410 movs r0, #0xb4 lsls r0, r0, #1 strh r0, [r1] adds r0, r4, #0 movs r1, #1 bl sub_08046634 _08046410: adds r0, r4, #0 bl sub_080466A8 adds r3, r4, #0 adds r3, #0x7a ldrh r0, [r3] adds r2, r0, #1 strh r2, [r3] adds r0, r2, #0 ands r0, r6 ldr r1, _08046440 @ =0x0000059F cmp r0, r1 bls _08046444 movs r0, #0 strh r0, [r3] adds r0, r4, #0 adds r0, #0x7c strb r5, [r0] adds r0, #1 strb r5, [r0] adds r0, #3 b _08046468 .align 2, 0 _0804643C: .4byte 0x0000FFFF _08046440: .4byte 0x0000059F _08046444: lsls r0, r2, #0x10 lsrs r1, r0, #0x10 cmp r1, #0x78 bne _08046454 adds r0, r4, #0 bl sub_08046668 b _0804646A _08046454: movs r0, #0xa5 lsls r0, r0, #3 cmp r1, r0 bne _0804646A adds r0, r4, #0 adds r0, #0x78 strb r5, [r0] adds r0, #5 strb r5, [r0] adds r0, #2 _08046468: strb r5, [r0] _0804646A: adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 bne _08046494 movs r0, #1 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x70 movs r2, #0 movs r0, #0x3c strh r0, [r1] adds r0, r4, #0 adds r0, #0x78 strb r2, [r0] adds r0, #8 strb r2, [r0] movs r0, #0x94 lsls r0, r0, #1 bl PlaySFX _08046494: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08046498 sub_08046498: @ 0x08046498 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _080464B8 @ =gUnk_02019EE0 movs r4, #0x80 lsls r4, r4, #8 adds r1, r4, #0 bl _DmaZero ldr r0, _080464BC @ =gUnk_02002F00 adds r1, r4, #0 bl _DmaZero adds r0, r5, #0 bl sub_080464C0 pop {r4, r5, pc} .align 2, 0 _080464B8: .4byte gUnk_02019EE0 _080464BC: .4byte gUnk_02002F00 thumb_func_start sub_080464C0 sub_080464C0: @ 0x080464C0 push {r4, r5, r6, lr} ldr r1, _08046508 @ =gUnk_080D1A74 ldrb r0, [r0, #0x14] lsrs r0, r0, #6 lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl sub_080197D4 bl sub_08046518 movs r6, #0x20 ldr r4, _0804650C @ =gUnk_02019EE0 ldr r0, _08046510 @ =0x00003260 adds r5, r4, r0 _080464DE: adds r0, r4, #0 adds r1, r5, #0 movs r2, #0x40 bl sub_0801D66C movs r0, #0x80 lsls r0, r0, #1 adds r5, r5, r0 adds r4, #0x40 subs r6, #1 cmp r6, #0 bne _080464DE ldr r0, _0804650C @ =gUnk_02019EE0 movs r1, #0x80 lsls r1, r1, #4 bl _DmaZero ldr r1, _08046514 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] pop {r4, r5, r6, pc} .align 2, 0 _08046508: .4byte gUnk_080D1A74 _0804650C: .4byte gUnk_02019EE0 _08046510: .4byte 0x00003260 _08046514: .4byte gUnk_02000070 thumb_func_start sub_08046518 sub_08046518: @ 0x08046518 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 ldr r1, _080465AC @ =gUnk_02010654 ldr r2, _080465B0 @ =0xFFFFBCB0 adds r0, r1, r2 ldr r3, _080465B4 @ =0xFFFFECB0 adds r2, r1, r3 ldr r7, _080465B8 @ =0x00006658 adds r7, r1, r7 str r7, [sp, #4] ldr r3, _080465BC @ =0xFFFFD658 adds r6, r1, r3 movs r1, #0x10 _0804653A: movs r5, #0x10 movs r7, #0x80 adds r7, r7, r0 mov sl, r7 adds r3, r2, #0 adds r3, #0x80 str r3, [sp] ldr r7, [sp, #4] adds r7, #0x40 mov r8, r7 movs r3, #0x40 adds r3, r3, r6 mov sb, r3 subs r1, #1 mov ip, r1 adds r3, r0, #0 adds r3, #0x20 adds r4, r2, #0 adds r4, #0x20 _08046560: ldrh r0, [r3] strh r0, [r4] ldrh r0, [r3] lsls r0, r0, #1 ldr r7, _080465AC @ =gUnk_02010654 adds r0, r0, r7 ldrh r1, [r0] ldr r0, [sp, #4] adds r2, r0, r5 ldr r7, _080465C0 @ =gUnk_080B37A0 adds r0, r1, r7 ldrb r0, [r0] strb r0, [r2] adds r2, r6, r5 ldr r0, _080465C4 @ =gUnk_080B3E80 adds r1, r1, r0 ldrb r0, [r1] strb r0, [r2] subs r3, #2 subs r4, #2 subs r5, #1 cmp r5, #0 bne _08046560 mov r0, sl ldr r2, [sp] mov r1, r8 str r1, [sp, #4] mov r6, sb mov r1, ip cmp r1, #0 bne _0804653A add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _080465AC: .4byte gUnk_02010654 _080465B0: .4byte 0xFFFFBCB0 _080465B4: .4byte 0xFFFFECB0 _080465B8: .4byte 0x00006658 _080465BC: .4byte 0xFFFFD658 _080465C0: .4byte gUnk_080B37A0 _080465C4: .4byte gUnk_080B3E80 thumb_func_start sub_080465C8 sub_080465C8: @ 0x080465C8 push {r4, lr} ldr r3, _080465FC @ =gLinkEntity movs r0, #0x2e ldrsh r2, [r3, r0] ldr r1, _08046600 @ =gRoomControls ldrh r0, [r1, #6] subs r2, r2, r0 asrs r2, r2, #3 movs r4, #0x32 ldrsh r0, [r3, r4] ldrh r1, [r1, #8] subs r0, r0, r1 asrs r0, r0, #3 ldr r1, _08046604 @ =gUnk_02019EE0 lsls r0, r0, #7 adds r0, r0, r2 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0 beq _080465F8 ldr r1, _08046608 @ =gLinkState movs r0, #1 strb r0, [r1, #0x14] _080465F8: pop {r4, pc} .align 2, 0 _080465FC: .4byte gLinkEntity _08046600: .4byte gRoomControls _08046604: .4byte gUnk_02019EE0 _08046608: .4byte gLinkState thumb_func_start sub_0804660C sub_0804660C: @ 0x0804660C push {r4, lr} strb r1, [r0, #0x14] lsrs r1, r1, #5 lsls r1, r1, #1 ldr r2, _0804662C @ =gUnk_080D1A84 adds r1, r1, r2 ldr r3, _08046630 @ =gRoomControls ldrh r2, [r3, #6] ldrh r4, [r1] adds r2, r2, r4 strh r2, [r0, #0x2e] ldrh r2, [r3, #8] ldrh r1, [r1, #2] adds r2, r2, r1 strh r2, [r0, #0x32] pop {r4, pc} .align 2, 0 _0804662C: .4byte gUnk_080D1A84 _08046630: .4byte gRoomControls thumb_func_start sub_08046634 sub_08046634: @ 0x08046634 push {r4, r5, lr} adds r5, r0, #0 cmp r1, #0 bne _08046650 ldr r4, _0804664C @ =gUnk_080D1AF4 bl Random movs r1, #3 ands r1, r0 adds r1, r1, r4 ldrb r1, [r1] b _0804665A .align 2, 0 _0804664C: .4byte gUnk_080D1AF4 _08046650: bl Random adds r1, r0, #0 movs r0, #7 ands r1, r0 _0804665A: ldrb r2, [r5, #0x14] lsrs r2, r2, #3 adds r0, r1, #0 movs r1, #0 bl sub_080A1ED0 pop {r4, r5, pc} thumb_func_start sub_08046668 sub_08046668: @ 0x08046668 push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _080466A0 adds r5, r4, #0 adds r5, #0x78 ldrb r0, [r5] cmp r0, #0xff beq _080466A0 bl Random ldr r2, _080466A4 @ =gUnk_080D1AF8 movs r1, #3 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] movs r1, #0 strb r0, [r5] adds r0, r4, #0 adds r0, #0x7f strb r1, [r0] adds r0, #3 strb r1, [r0] adds r0, r4, #0 bl sub_080467DC _080466A0: pop {r4, r5, pc} .align 2, 0 _080466A4: .4byte gUnk_080D1AF8 thumb_func_start sub_080466A8 sub_080466A8: @ 0x080466A8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r0, #0x7c ldrb r2, [r0] cmp r2, #0 beq _0804674C adds r0, #1 ldrb r1, [r0] orrs r1, r2 strb r1, [r0] ldrb r1, [r4, #0xe] adds r5, r0, #0 cmp r1, #0 bne _080466D0 subs r0, #5 ldrb r0, [r0] cmp r0, #0xff beq _080466D0 movs r0, #4 strb r0, [r4, #0xe] _080466D0: ldrb r0, [r5] bl sub_08000E62 cmp r0, #2 bls _0804674C movs r0, #0 strb r0, [r4, #0xe] strb r0, [r5] adds r7, r4, #0 adds r7, #0x78 subs r0, #1 adds r6, r0, #0 movs r0, #0xff strb r0, [r7] adds r0, #0x28 bl PlaySFX adds r5, r4, #0 adds r5, #0x45 ldrb r0, [r5] cmp r0, #0 beq _08046746 movs r0, #8 movs r1, #0 bl sub_08080964 adds r1, r4, #0 adds r1, #0x82 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ands r0, r6 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xc bhi _0804671E ldrb r0, [r5] subs r0, #1 strb r0, [r5] _0804671E: ldrb r0, [r5] cmp r0, #0 bne _08046730 strb r0, [r7] adds r1, r4, #0 adds r1, #0x7a movs r0, #0xa5 lsls r0, r0, #3 b _08046744 _08046730: adds r1, r4, #0 adds r1, #0x7f ldrb r0, [r1] cmp r0, #0 bne _08046746 movs r0, #1 strb r0, [r1] subs r1, #5 movs r0, #0x87 lsls r0, r0, #3 _08046744: strh r0, [r1] _08046746: adds r0, r4, #0 bl sub_080467DC _0804674C: ldrb r1, [r4, #0xe] cmp r1, #0 beq _080467CC adds r0, r4, #0 adds r0, #0x78 ldrb r0, [r0] cmp r0, #0xff beq _080467CC subs r0, r1, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r5, r0, #0x18 cmp r5, #0 bne _080467CC adds r2, r4, #0 adds r2, #0x80 adds r3, r4, #0 adds r3, #0x7d ldrb r0, [r2] ldrb r1, [r3] orrs r0, r1 strb r0, [r2] strb r5, [r3] adds r0, r4, #0 bl sub_080467DC ldr r0, [r4, #0x64] adds r0, #0x3c ldrb r1, [r0] adds r0, r1, #0 cmp r0, #0xff beq _080467CC ldr r2, _080467D8 @ =gLinkEntity adds r0, r2, #0 adds r0, #0x3e strb r1, [r0] adds r1, r2, #0 adds r1, #0x3d movs r0, #0xf4 strb r0, [r1] adds r1, #5 movs r0, #0xa strb r0, [r1] adds r0, r4, #0 movs r1, #0x2c movs r2, #0 bl CreateFx adds r2, r0, #0 cmp r2, #0 beq _080467CC ldr r0, [r4, #0x64] ldrh r0, [r0, #0x38] strh r0, [r2, #0x2e] ldr r0, [r4, #0x64] ldrh r0, [r0, #0x3a] strh r0, [r2, #0x32] adds r1, r2, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r0, r2, #0 bl UpdateSpriteForCollisionLayer _080467CC: adds r1, r4, #0 adds r1, #0x7c movs r0, #0 strb r0, [r1] pop {r4, r5, r6, r7, pc} .align 2, 0 _080467D8: .4byte gLinkEntity thumb_func_start sub_080467DC sub_080467DC: @ 0x080467DC push {lr} movs r1, #0 ldr r0, [r0, #0x64] movs r2, #0 adds r0, #0x18 _080467E6: stm r0!, {r2} adds r1, #1 cmp r1, #7 bls _080467E6 pop {pc}