tmc/asm/code_080041E8.s

295 lines
5.1 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_080041E8
sub_080041E8: @ 0x080041E8
subs r0, r0, r2
subs r1, r1, r3
thumb_func_start sub_080041EC
sub_080041EC: @ 0x080041EC
adds r2, r0, #0
muls r0, r2, r0
adds r3, r1, #0
muls r1, r3, r1
push {lr}
adds r0, r0, r1
lsls r0, r0, #8
bl Sqrt
pop {r3}
bx r3
non_word_aligned_thumb_func_start sub_08004202
sub_08004202: @ 0x08004202
push {r1, lr}
ldrb r1, [r0, #0x14]
bl sub_08004212
pop {r0}
str r1, [r0]
adds r0, r2, #0
pop {pc}
non_word_aligned_thumb_func_start sub_08004212
sub_08004212: @ 0x08004212
push {r4}
adds r4, r1, #0
movs r3, #3
tst r4, r3
beq _08004226
movs r3, #2
lsrs r4, r4, #3
blo _08004224
rsbs r3, r3, #0
_08004224:
adds r2, r2, r3
_08004226:
adds r4, r1, #0
movs r3, #3
ands r4, r3
cmp r4, #2
beq _0800423C
movs r3, #0x80
adds r1, #1
lsrs r1, r1, #3
bhs _0800423A
rsbs r3, r3, #0
_0800423A:
adds r2, r2, r3
_0800423C:
ldr r3, _08004390 @ =0x00001FFF
ands r2, r3
movs r4, #0x38
ldrb r4, [r0, r4]
lsls r4, r4, #3
ldr r3, _08004394 @ =gUnk_08000228
adds r3, r3, r4
ldr r4, [r3]
ldrh r1, [r4, r2]
ldr r4, _08004398 @ =0x00004000
tst r1, r4
bne _0800425C
lsls r1, r1, #0x11
lsrs r1, r1, #0x10
ldr r4, [r3, #4]
ldrh r1, [r4, r1]
_0800425C:
pop {r4}
bx lr
thumb_func_start sub_08004260
sub_08004260: @ 0x08004260
movs r2, #0x58
strb r1, [r0, r2]
ldrh r3, [r0, #0x12]
lsls r3, r3, #4
ldr r2, _0800439C @ =gUnk_080029B4
ldr r2, [r2, r3]
lsls r1, r1, #2
ldr r1, [r2, r1]
str r1, [r0, #0x5c]
b _0800432A
thumb_func_start sub_08004274
sub_08004274: @ 0x08004274
movs r1, #1
non_word_aligned_thumb_func_start sub_08004276
sub_08004276: @ 0x08004276
movs r3, #0x59
ldrb r2, [r0, r3]
subs r2, r2, r1
beq _0800432A
ble _08004284
strb r2, [r0, r3]
bx lr
_08004284:
ldr r1, [r0, #0x5c]
_08004286:
ldrb r3, [r1, #1]
adds r2, r2, r3
bgt _0800429C
ldrb r3, [r1, #3]
adds r1, #4
lsrs r3, r3, #8
blo _08004286
ldrb r3, [r1]
lsls r3, r3, #2
subs r1, r1, r3
b _08004286
_0800429C:
str r1, [r0, #0x5c]
push {r2, lr}
bl _0800432A
pop {r2, r3}
movs r1, #0x59
strb r2, [r0, r1]
bx r3
thumb_func_start sub_080042AC
sub_080042AC: @ 0x080042AC
push {lr}
bl sub_08004260
movs r2, #0xff
strb r2, [r0, #0x1f]
b _080042C0
thumb_func_start sub_080042B8
sub_080042B8: @ 0x080042B8
movs r1, #1
non_word_aligned_thumb_func_start sub_080042BA
sub_080042BA: @ 0x080042BA
push {lr}
bl sub_08004276
_080042C0:
pop {r1}
mov lr, r1
ldrb r1, [r0, #0x1e]
ldrb r3, [r0, #0x1f]
strb r1, [r0, #0x1f]
cmp r1, r3
beq _08004328
ldrh r2, [r0, #0x12]
thumb_func_start sub_080042D0
sub_080042D0: @ 0x080042D0
cmp r1, #0xff
beq _08004328
lsls r2, r2, #4
lsls r3, r1, #2
ldr r1, _080043A0 @ =gUnk_080029B4
adds r1, r1, r2
ldr r2, [r1, #4]
cmp r2, #0
beq _08004328
ldr r1, [r1, #8]
adds r2, r2, r3
ldrb r3, [r2]
cmp r3, #0
beq _08004328
push {r4, r5}
movs r3, #0x26
ldrb r3, [r0, r3]
movs r4, #0xc
muls r3, r4, r3
ldr r4, _080043A4 @ =gUnk_02024494
adds r4, r4, r3
ldrb r3, [r4]
movs r5, #0xf
ands r3, r5
cmp r3, #5
blo _08004326
ldrb r5, [r4, #6]
ldrb r3, [r2]
strb r3, [r4, #6]
subs r5, r5, r3
ldrh r3, [r2, #2]
lsls r3, r3, #5
adds r1, r1, r3
ldr r2, [r4, #8]
str r1, [r4, #8]
subs r2, r2, r1
orrs r5, r2
beq _08004326
movs r2, #0xf0
ldrb r1, [r4]
bics r1, r2
adds r1, #0x30
strb r1, [r4]
_08004326:
pop {r4, r5}
_08004328:
bx lr
_0800432A:
ldrb r3, [r0, #0x1e]
strb r3, [r0, #0x1f]
ldr r1, [r0, #0x5c]
ldrb r3, [r1]
strb r3, [r0, #0x1e]
ldrb r3, [r1, #1]
movs r2, #0x59
strb r3, [r0, r2]
ldrb r3, [r1, #2]
movs r2, #0x5b
strb r3, [r0, r2]
ldrb r3, [r1, #3]
movs r2, #0x5a
strb r3, [r0, r2]
adds r1, #4
lsrs r3, r3, #8
blo _08004352
ldrb r3, [r1]
lsls r3, r3, #2
subs r1, r1, r3
_08004352:
str r1, [r0, #0x5c]
bx lr
.align 2, 0
_08004358: .4byte gUnk_081326EC
_0800435C: .4byte gUnk_02024048
_08004360: .4byte gUnk_02021F20
_08004364: .4byte gUnk_02024048
_08004368: .4byte gUnk_03000BF0
_0800436C: .4byte 0x0000016E
_08004370: .4byte 0x0000011E
_08004374: .4byte gUnk_03000BF6
_08004378: .4byte gUnk_03000BF8
_0800437C: .4byte 0x000003F0
_08004380: .4byte gUnk_08000248
_08004384: .4byte 0x000FFFFF
_08004388: .4byte 0x00080000
_0800438C: .4byte 0x0000EE00
_08004390: .4byte 0x00001FFF
_08004394: .4byte gUnk_08000228
_08004398: .4byte 0x00004000
_0800439C: .4byte gUnk_080029B4
_080043A0: .4byte gUnk_080029B4
_080043A4: .4byte gUnk_02024494
thumb_func_start sub_080043A8
sub_080043A8: @ 0x080043A8
movs r1, #0xb
b _080043B6
thumb_func_start sub_080043AC
sub_080043AC: @ 0x080043AC
movs r1, #0xc
b _080043B6
thumb_func_start sub_080043B0
sub_080043B0: @ 0x080043AC
movs r1, #0x52
b _080043B6
thumb_func_start sub_080043B4
sub_080043B4: @ 0x080043B4
movs r1, #0
_080043B6:
push {r4, lr}
adds r4, r0, #0
movs r0, #0xf
movs r2, #0
bl CreateObject
cmp r0, #0
beq _080043E0
movs r1, #0x48
ldr r1, [r4, r1]
ldrh r3, [r4, #0x2e]
strh r3, [r0, #0x2e]
ldrh r3, [r4, #0x32]
strh r3, [r0, #0x32]
ldrh r3, [r4, #0x36]
strh r3, [r0, #0x36]
ldrb r3, [r4, #8]
cmp r3, #3
bne _080043E0
movs r1, #1
strb r1, [r0, #0xb]
_080043E0:
adds r0, r4, #0
bl sub_0805E7BC
pop {r4, pc}