diff options
Diffstat (limited to 'asm/unknown_lib_1.s')
-rw-r--r-- | asm/unknown_lib_1.s | 448 |
1 files changed, 448 insertions, 0 deletions
diff --git a/asm/unknown_lib_1.s b/asm/unknown_lib_1.s new file mode 100644 index 000000000..ae53b2a1b --- /dev/null +++ b/asm/unknown_lib_1.s @@ -0,0 +1,448 @@ + thumb_func_start sub_82DED70 +sub_82DED70: @ 82DED70 + push {r4,lr} + ldr r4, _082DEE78 + eors r3, r1 + movs r2, 0x20 +_082DED78: + lsrs r3, 1 + bcc _082DED7E + eors r3, r4 +_082DED7E: + subs r2, 0x1 + bne _082DED78 + pop {r4,pc} + thumb_func_end sub_82DED70 + + thumb_func_start sub_82DED84 +sub_82DED84: @ 82DED84 + ldr r1, [r0, 0x28] + cmp r1, 0 + beq _082DEDAA + ldrb r1, [r0, 0x1] + adds r1, 0x1 + strb r1, [r0, 0x1] + ldrb r1, [r0, 0x2] + cmp r1, 0x2 + beq _082DEDF4 + ldr r3, _082DF038 + ldrh r2, [r3, 0x8] + movs r1, 0 + strh r1, [r3, 0x8] + ldrb r1, [r0] + cmp r1, 0xA + bgt _082DEDA8 + adds r1, 0x1 + strb r1, [r0] +_082DEDA8: + strh r2, [r3, 0x8] +_082DEDAA: + bcs sub_82DEE98 + ldrb r1, [r0, 0x2] + cmp r1, 0 + bne _082DEDF6 + ldr r1, [r0, 0x24] + ldr r2, [r0, 0x20] + subs r1, r2 + beq _082DEE76 + cmp r1, 0xA0 + bcc _082DEE76 + push {r4-r6} + movs r1, 0x98 + adds r2, 0x4 + ldr r4, _082DEE80 +_082DEDC6: + ldm r2!, {r5} + ldm r4!, {r6} + cmp r5, r6 + bne _082DEDDC + subs r1, 0x4 + bne _082DEDC6 + ldm r2!, {r5} + ldm r4!, {r6} + eors r5, r6 + lsrs r5, 8 + str r2, [r0, 0x20] +_082DEDDC: + pop {r4-r6} + bne sub_82DEE98 + movs r1, 0x1 + strb r1, [r0, 0x2] + ldr r1, [r0, 0x4] + ldr r2, [r0, 0x8] + eors r1, r2 + str r1, [r0, 0x18] + ldr r2, _082DEE7C + muls r1, r2 + adds r1, 0x1 + str r1, [r0, 0x14] +_082DEDF4: + bx lr +_082DEDF6: + ldr r1, [r0, 0x24] + mov r12, r1 + ldr r3, [r0, 0x18] + push {r4-r7} + ldr r4, [r0, 0x20] + ldr r5, _082DEE7C + ldr r6, [r0, 0x14] + ldr r7, _082DEE78 +_082DEE06: + cmp r4, r12 + bcs _082DEE26 + ldr r1, [r4] + eors r1, r6 + adds r1, r3 + stm r4!, {r1} + eors r3, r1 + movs r2, 0x20 +_082DEE16: + lsrs r3, 1 + bcc _082DEE1C + eors r3, r7 +_082DEE1C: + subs r2, 0x1 + bne _082DEE16 + muls r6, r5 + adds r6, 0x1 + b _082DEE06 +_082DEE26: + str r4, [r0, 0x20] + str r6, [r0, 0x14] + pop {r4-r7} + str r3, [r0, 0x18] + ldrh r1, [r0, 0x12] + cmp r1, 0 + bne _082DEE76 + ldr r1, [r0, 0x24] + ldr r2, [r0, 0x20] + cmp r1, r2 + bne _082DEE76 + ldr r1, [r0, 0xC] + cmp r1, 0 + beq _082DEE60 + ldrh r1, [r0, 0x10] + cmp r1, 0 + beq _082DEDF4 + mov r12, lr + movs r1, 0xBB + ldr r3, [r0, 0xC] + bl sub_82DED70 + ldrh r1, [r0, 0x10] + mov lr, r12 + subs r1, r3 + bne sub_82DEE98 + movs r1, 0x2 + strb r1, [r0, 0x2] + bx lr +_082DEE60: + mov r12, lr + ldrb r1, [r0, 0x3] + lsls r1, 24 + subs r1, 0x1 + str r1, [r0, 0xC] + bl sub_82DED70 + lsls r3, 8 + adds r3, 0xFF + str r3, [r0, 0x1C] + bx r12 +_082DEE76: + bx lr + .align 2, 0 +_082DEE78: .4byte 0x0000a1c1 +_082DEE7C: .4byte 0x6177614b +_082DEE80: .4byte RomHeaderNintendoLogo + thumb_func_end sub_82DED84 + + thumb_func_start sub_82DEE84 +sub_82DEE84: @ 82DEE84 + ldrb r1, [r0, 0x2] + cmp r1, 0x2 + bne _082DEE96 + ldr r3, _082DF038 + movs r1, 0 + strh r1, [r3, 0x8] + ldr r1, _082DF048 + adds r1, 0xC0 + bx r1 +_082DEE96: + bx lr + thumb_func_end sub_82DEE84 + + thumb_func_start sub_82DEE98 +sub_82DEE98: @ 82DEE98 + ldr r3, _082DF038 + ldrh r2, [r3, 0x8] + movs r1, 0 + strh r1, [r3, 0x8] + adr r3, _082DEEF8 + str r3, [r0, 0x28] + ldrb r3, [r0, 0x3] + push {r3} + ldrb r3, [r0, 0x1] + push {r0,r3} + adds r3, r0, 0 + adds r3, 0x20 +_082DEEB0: + stm r0!, {r1} + cmp r0, r3 + bcc _082DEEB0 + pop {r0,r3} + lsrs r3, 1 + strb r3, [r0, 0x3] + pop {r3} + strb r3, [r0, 0x1] + ldr r3, _082DF03C + lsls r0, r3, 10 + strh r0, [r3, 0x14] + movs r0, 0xC0 + lsls r0, 8 + strh r0, [r3, 0x14] + movs r0, 0x47 + strh r0, [r3, 0x20] + strh r1, [r3, 0x38] + ldr r3, _082DF038 + movs r0, 0x80 + strh r0, [r3, 0x2] + ldrh r1, [r3] + orrs r1, r0 + strh r1, [r3] + strh r2, [r3, 0x8] + bx lr + thumb_func_end sub_82DEE98 + + non_word_aligned_thumb_func_start sub_82DEEE2 +sub_82DEEE2: @ 82DEEE2 + ldr r3, _082DF03C + ldrh r1, [r3, 0x20] + strh r1, [r3, 0x20] + movs r2, 0 + strb r2, [r0] + ldr r2, [r0, 0x28] + cmp r2, 0 + beq _082DEF04 + lsrs r1, 1 + bcs _082DEF06 + mov pc, r2 +_082DEEF8: + movs r2, 0 + strh r2, [r3, 0x38] +_082DEEFC: + str r2, [r0, 0x28] +_082DEEFE: + ldr r3, _082DF040 + ldrh r1, [r3, 0x2] + strb r1, [r0, 0x3] +_082DEF04: + bx lr +_082DEF06: + ldr r1, [r3, 0x30] + ldr r1, _082DF044 + str r1, [r3, 0x34] + movs r1, 0x10 + strh r1, [r3, 0x38] + ldrb r1, [r0, 0x3] + strb r1, [r0, 0x9] + ldrb r1, [r0, 0x2] + cmp r1, 0 + bne _082DEEF8 + ldr r1, _082DF048 + str r1, [r0, 0x20] + str r1, [r0, 0x24] + adr r2, .Lsub_82DEF24 + b _082DEEFC + thumb_func_end sub_82DEEE2 + + thumb_func_start sub_82DEF24 +.Lsub_82DEF24: +sub_82DEF24: @ 82DEF24 + lsls r1, 31 + bcc _082DEEF8 + bmi _082DEF34 + adr r2, .Lsub_82DEF30 + b _082DEEFC + thumb_func_end sub_82DEF24 + + thumb_func_start sub_82DEF30 +.Lsub_82DEF30: +sub_82DEF30: @ 82DEF30 + lsrs r1, 1 + bcc _082DEEF8 +_082DEF34: + ldr r1, [r3, 0x30] + ldr r2, _082DF044 + cmp r1, r2 + bne _082DEEF8 + ldrb r1, [r0, 0x3] + strb r1, [r0, 0xB] + adr r2, .Lsub_82DEF44 + b _082DEEFC + thumb_func_end sub_82DEF30 + + thumb_func_start sub_82DEF44 +.Lsub_82DEF44: +sub_82DEF44: @ 82DEF44 + lsrs r1, 1 + bcc _082DEEF8 + ldr r1, [r3, 0x30] + lsrs r2, r1, 24 + cmp r2, 0xDD + bne _082DEEF8 + str r1, [r0, 0x4] + ldrb r1, [r0, 0x1] + strb r1, [r0, 0xA] + movs r2, 0 + movs r3, 0 + ldr r1, [r0, 0x8] + lsrs r1, 8 +_082DEF5E: + lsrs r1, 1 + adcs r2, r3 + cmp r1, 0 + bne _082DEF5E + cmp r2, 0xE + bgt _082DEF70 + cmp r2, 0x7 + bge _082DEF72 + movs r1, 0xFF +_082DEF70: + strb r1, [r0, 0xA] +_082DEF72: + ldr r1, [r0, 0x8] + adds r1, 0xEE + ldr r3, _082DF03C + str r1, [r3, 0x34] + movs r1, 0x30 + strh r1, [r3, 0x38] + adr r2, .Lsub_82DEF84 + b _082DEEFC + thumb_func_end sub_82DEF44 + + thumb_func_start sub_82DEF84 +.Lsub_82DEF84: +sub_82DEF84: @ 82DEF84 + lsls r1, 31 + bcc _082DEEF8 + bmi _082DEF94 + adr r2, .Lsub_82DEF90 + b _082DEEFC + thumb_func_end sub_82DEF84 + + thumb_func_start sub_82DEF90 +.Lsub_82DEF90: +sub_82DEF90: @ 82DEF90 + lsrs r1, 1 + bcc _082DEEF8 +_082DEF94: + ldr r1, [r3, 0x30] + ldr r2, _082DF034 + cmp r1, r2 + bcs _082DEEF8 + adds r1, 0x1 + adds r1, r1 + strh r1, [r0, 0x12] + ldrb r1, [r0, 0x2] + cmp r1, 0 +_082DEFA6: + bne _082DEEF8 + ldr r1, _082DF048 + str r1, [r0, 0x20] + str r1, [r0, 0x24] + adr r2, .Lsub_82DEFB4 + b _082DEEFC + thumb_func_end sub_82DEF90 + + thumb_func_start sub_82DEFB4 +.Lsub_82DEFB4: +sub_82DEFB4: @ 82DEFB4 + lsrs r1, 1 + bcc _082DEEF8 + ldr r2, [r0, 0x24] + movs r1, 0x4 + ands r1, r2 + adds r1, 0x8 + lsls r1, 2 + strh r1, [r3, 0x38] + ldr r1, [r3, 0x30] + stm r2!, {r1} + str r2, [r0, 0x24] + ldrh r1, [r0, 0x12] + subs r1, 0x1 + strh r1, [r0, 0x12] + bne _082DEEFE +_082DEFD2: + ldrb r1, [r0, 0x1] + lsls r1, 8 + adds r1, 0xCC + str r1, [r3, 0x34] + adr r2, _082DEFE0 + b _082DEEFC + .align 2, 0 +_082DEFE0: + lsls r1, 31 +_082DEFE2: + bcc _082DEEF8 + ldr r1, [r0, 0x1C] + cmp r1, 0 + beq _082DEFD2 + str r1, [r3, 0x34] + adr r2, .Lsub_82DEFF0 + b _082DEEFC + thumb_func_end sub_82DEFB4 + + thumb_func_start sub_82DEFF0 +.Lsub_82DEFF0: +sub_82DEFF0: @ 82DEFF0 + lsls r1, 31 + bcc _082DEFE2 + bmi _082DF000 + adr r2, .L_082DEFFC + b _082DEEFC + .align 2, 0 +.L_082DEFFC: +_082DEFFC: + lsrs r1, 1 + bcc _082DEFE2 +_082DF000: + ldr r1, [r3, 0x30] + lsrs r2, r1, 24 + cmp r2, 0xBB + bne _082DEFA6 + strh r1, [r0, 0x10] + adr r2, .Lsub_82DF010 + b _082DEEFC + thumb_func_end sub_82DEFF0 + + thumb_func_start sub_82DF010 +.Lsub_82DF010: +sub_82DF010: @ 82DF010 + b _082DEEF8 + thumb_func_end sub_82DF010 + + non_word_aligned_thumb_func_start sub_82DF012 +sub_82DF012: @ 82DF012 + ldr r3, _082DF038 + ldrh r2, [r3, 0x8] + movs r1, 0 + strh r1, [r3, 0x8] + ldr r3, _082DF03C + movs r0, 0x7 + strh r0, [r3, 0x20] + lsls r0, r3, 10 + strh r0, [r3, 0x14] + ldr r3, _082DF038 + movs r0, 0x80 + strh r0, [r3, 0x2] + ldrh r1, [r3] + bics r1, r0 + strh r1, [r3] + strh r2, [r3, 0x8] + bx lr + .align 2, 0 +_082DF034: .4byte 0x00004000 +_082DF038: .4byte 0x04000200 +_082DF03C: .4byte 0x04000120 +_082DF040: .4byte 0x04000004 +_082DF044: .4byte 0x45565841 +_082DF048: .4byte 0x02000000 + thumb_func_end sub_82DF012 |