mirror of
https://github.com/pret/pmd-sky.git
synced 2026-04-25 07:24:42 -05:00
27594 lines
494 KiB
ArmAsm
27594 lines
494 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "asm/include/main.inc"
|
|
|
|
.text
|
|
|
|
arm_func_start sub_027E0000
|
|
sub_027E0000: ; 0x027E0000
|
|
.byte 0x38, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0x01, 0x40, 0xA0, 0xE1, 0x00, 0x10, 0x94, 0xE5
|
|
.byte 0x74, 0x31, 0x9F, 0xE5, 0x00, 0x50, 0xA0, 0xE1, 0x40, 0x15, 0x83, 0xE5, 0x24, 0x10, 0x95, 0xE5
|
|
.byte 0x68, 0x01, 0x9F, 0xE5, 0x44, 0x15, 0x83, 0xE5, 0x28, 0x20, 0x95, 0xE5, 0x60, 0x11, 0x9F, 0xE5
|
|
.byte 0x48, 0x25, 0x83, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0x4C, 0xC5, 0x83, 0xE5, 0x02, 0x20, 0xA0, 0xE3
|
|
.byte 0x50, 0xC5, 0x83, 0xE5, 0x98, 0x71, 0x40, 0xEB, 0x48, 0x01, 0x9F, 0xE5, 0x48, 0x11, 0x9F, 0xE5
|
|
.byte 0x04, 0x20, 0xA0, 0xE3, 0x94, 0x71, 0x40, 0xEB, 0x40, 0x01, 0x9F, 0xE5, 0x40, 0x11, 0x9F, 0xE5
|
|
.byte 0x04, 0x20, 0xA0, 0xE3, 0x90, 0x71, 0x40, 0xEB, 0x38, 0x01, 0x9F, 0xE5, 0x38, 0x11, 0x9F, 0xE5
|
|
.byte 0x20, 0x20, 0xA0, 0xE3, 0x8C, 0x71, 0x40, 0xEB, 0x10, 0x11, 0x9F, 0xE5, 0x14, 0x01, 0x9F, 0xE5
|
|
.byte 0x10, 0x10, 0x85, 0xE5, 0x14, 0x00, 0x85, 0xE5, 0x08, 0x20, 0x94, 0xE5, 0xF8, 0x10, 0x9F, 0xE5
|
|
.byte 0x18, 0x01, 0x9F, 0xE5, 0x78, 0x25, 0x81, 0xE5, 0x18, 0x20, 0x94, 0xE5, 0x7C, 0x25, 0x81, 0xE5
|
|
.byte 0x10, 0x20, 0x94, 0xE5, 0x80, 0x25, 0x81, 0xE5, 0x04, 0x20, 0x94, 0xE5, 0x84, 0x25, 0x81, 0xE5
|
|
.byte 0x14, 0x20, 0x94, 0xE5, 0x88, 0x25, 0x81, 0xE5, 0x0C, 0x20, 0x94, 0xE5, 0x8C, 0x25, 0x81, 0xE5
|
|
.byte 0xEA, 0x71, 0x40, 0xEB, 0x01, 0x0B, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x04, 0x10, 0x94, 0xE5
|
|
.byte 0xDC, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0x8D, 0xE5, 0xD8, 0x10, 0x9F, 0xE5, 0xCC, 0x30, 0x9F, 0xE5
|
|
.byte 0x00, 0x20, 0xA0, 0xE3, 0xDA, 0x6F, 0x40, 0xEB, 0xC4, 0x00, 0x9F, 0xE5, 0x9E, 0x70, 0x40, 0xEB
|
|
.byte 0x01, 0x0A, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0xB8, 0x00, 0x9F, 0xE5
|
|
.byte 0x04, 0x10, 0x8D, 0xE5, 0xB4, 0x10, 0x9F, 0xE5, 0xB4, 0x30, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3
|
|
.byte 0xCF, 0x6F, 0x40, 0xEB, 0xA0, 0x00, 0x9F, 0xE5, 0x93, 0x70, 0x40, 0xEB, 0x00, 0x30, 0xA0, 0xE3
|
|
.byte 0x68, 0x10, 0x9F, 0xE5, 0x03, 0x20, 0xA0, 0xE1, 0x03, 0x00, 0x81, 0xE0, 0x01, 0x0A, 0x80, 0xE2
|
|
.byte 0x01, 0x30, 0x83, 0xE2, 0x54, 0x25, 0xC0, 0xE5, 0x20, 0x00, 0x53, 0xE3, 0xF9, 0xFF, 0xFF, 0xBA
|
|
.byte 0x44, 0x00, 0x9F, 0xE5, 0x74, 0x25, 0x80, 0xE5, 0x92, 0x75, 0x40, 0xEB, 0x00, 0x00, 0x50, 0xE3
|
|
.byte 0x00, 0x00, 0x00, 0x1A, 0x7C, 0x75, 0x40, 0xEB, 0x55, 0x78, 0x40, 0xEB, 0x64, 0x10, 0x9F, 0xE5
|
|
.byte 0x0A, 0x00, 0xA0, 0xE3, 0x8C, 0x78, 0x40, 0xEB, 0x02, 0x00, 0xA0, 0xE3, 0x18, 0x00, 0x85, 0xE5
|
|
.byte 0x14, 0x10, 0x94, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x0C, 0x10, 0x85, 0xE5, 0x17, 0x22, 0x00, 0xEB
|
|
.byte 0x08, 0xD0, 0x8D, 0xE2, 0x38, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x78, 0x88, 0x7F, 0x02
|
|
.byte 0x78, 0x78, 0x7F, 0x02, 0x98, 0x78, 0x7F, 0x02, 0xA0, 0x78, 0x7F, 0x02, 0xC0, 0x78, 0x7F, 0x02
|
|
.byte 0xD0, 0x78, 0x7F, 0x02, 0xF0, 0x78, 0x7F, 0x02, 0x00, 0x79, 0x7F, 0x02, 0x20, 0x79, 0x7F, 0x02
|
|
.byte 0xA0, 0x8D, 0x7F, 0x02, 0x64, 0xB3, 0x80, 0x03, 0x98, 0x08, 0x7E, 0x02, 0xC0, 0xB2, 0x80, 0x03
|
|
.byte 0xC0, 0x1C, 0x7E, 0x02, 0xA0, 0x89, 0x7F, 0x02, 0x44, 0x02, 0x7E, 0x02
|
|
arm_func_end sub_027E0000
|
|
|
|
arm_func_start sub_027E01CC
|
|
sub_027E01CC: ; 0x027E01CC
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, r0
|
|
ldr r0, _027E023C ; =0x027F7878
|
|
mov r2, #1
|
|
bl sub_037FC6D4
|
|
ldr r0, _027E0240 ; =0x027F78D0
|
|
add r1, sp, #0
|
|
mov r2, #1
|
|
bl sub_037FC760
|
|
ldr r1, [sp]
|
|
ldrh r0, [r1, #0xe]
|
|
add r0, r1, r0, lsl #1
|
|
ldrh r0, [r0, #0x14]
|
|
cmp r0, #0xe
|
|
bne _027E0230
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #0x13
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x18
|
|
strh r1, [r0, #4]
|
|
bl sub_03807334
|
|
bl sub_037FE708
|
|
bl sub_037FDE70
|
|
_027E0230:
|
|
ldr r0, [sp]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E023C: .word 0x027F7878
|
|
_027E0240: .word 0x027F78D0
|
|
arm_func_end sub_027E01CC
|
|
|
|
arm_func_start sub_027E0244
|
|
sub_027E0244: ; 0x027E0244
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r1
|
|
cmp r2, #0
|
|
bne _027E029C
|
|
ldr r0, _027E02A4 ; =0x027F7900
|
|
mov r2, #0
|
|
bl sub_037FC6D4
|
|
cmp r0, #0
|
|
bne _027E029C
|
|
ldr r0, _027E02A8 ; =0x027F8878
|
|
ldr r0, [r0, #0x54c]
|
|
cmp r0, #0
|
|
beq _027E029C
|
|
bl sub_03807380
|
|
ldrh r2, [r4]
|
|
mov r1, #8
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
_027E029C:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E02A4: .word 0x027F7900
|
|
_027E02A8: .word 0x027F8878
|
|
arm_func_end sub_027E0244
|
|
|
|
arm_func_start sub_027E02AC
|
|
sub_027E02AC: ; 0x027E02AC
|
|
ldr r1, _027E0308 ; =0x027F8878
|
|
ldrb r2, [r0]
|
|
ldr r3, [r1, #0x550]
|
|
ldrb r1, [r3, #0xe0]
|
|
cmp r2, r1
|
|
ldreqb r2, [r0, #1]
|
|
ldreqb r1, [r3, #0xe1]
|
|
cmpeq r2, r1
|
|
ldreqb r2, [r0, #2]
|
|
ldreqb r1, [r3, #0xe2]
|
|
cmpeq r2, r1
|
|
ldreqb r2, [r0, #3]
|
|
ldreqb r1, [r3, #0xe3]
|
|
cmpeq r2, r1
|
|
ldreqb r2, [r0, #4]
|
|
ldreqb r1, [r3, #0xe4]
|
|
cmpeq r2, r1
|
|
ldreqb r1, [r0, #5]
|
|
ldreqb r0, [r3, #0xe5]
|
|
cmpeq r1, r0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027E0308: .word 0x027F8878
|
|
arm_func_end sub_027E02AC
|
|
|
|
arm_func_start sub_027E030C
|
|
sub_027E030C: ; 0x027E030C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, [r1, #8]
|
|
mov r2, r0
|
|
str r3, [r2, #4]
|
|
ldrh r0, [r1, #0xc]
|
|
strh r0, [r2, #8]
|
|
ldrh r0, [r1, #0x12]
|
|
cmp r0, #0
|
|
movne r3, #2
|
|
ldrh r0, [r1, #0xe]
|
|
moveq r3, #0
|
|
cmp r0, #0
|
|
movne ip, #1
|
|
ldrh r0, [r1, #0x14]
|
|
moveq ip, #0
|
|
cmp r0, #0
|
|
movne lr, #4
|
|
moveq lr, #0
|
|
orr r0, ip, r3
|
|
orr r0, lr, r0
|
|
strb r0, [r2, #0xb]
|
|
ldrh r3, [r1, #4]
|
|
mov r0, #1
|
|
strb r3, [r2, #0xa]
|
|
strh r0, [r2]
|
|
strb r0, [r2, #2]
|
|
mov r0, #0
|
|
strb r0, [r2, #3]
|
|
ldrh r0, [r1, #0x34]
|
|
strh r0, [r2, #0xc]
|
|
ldrh r0, [r1, #0x12]
|
|
cmp r0, #0
|
|
beq _027E03A0
|
|
ldrh r0, [r1, #0x36]
|
|
cmp r0, #8
|
|
movhs r0, #8
|
|
bhs _027E03A4
|
|
_027E03A0:
|
|
ldrh r0, [r1, #0x36]
|
|
_027E03A4:
|
|
strh r0, [r2, #0xe]
|
|
ldrb r3, [r2, #0xa]
|
|
cmp r3, #0
|
|
beq _027E03C8
|
|
ldr r0, [r1]
|
|
add r3, r3, #1
|
|
add r1, r2, #0x10
|
|
bic r2, r3, #1
|
|
bl sub_037FE12C
|
|
_027E03C8:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_027E030C
|
|
|
|
arm_func_start sub_027E03D0
|
|
sub_027E03D0: ; 0x027E03D0
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _027E0518 ; =0x027F8878
|
|
mov r5, r1
|
|
ldr r4, [r2, #0x550]
|
|
mov r6, r0
|
|
add r0, r4, #0xe0
|
|
add r1, r5, #0x10
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
mov r0, #7
|
|
strh r0, [r5, #0x16]
|
|
add r0, r4, #0x100
|
|
ldrh r1, [r0, #0xf4]
|
|
strh r1, [r5, #0x18]
|
|
ldrh r1, [r0, #0xec]
|
|
strh r1, [r5, #0x1e]
|
|
ldrh r1, [r4, #0xe6]
|
|
strh r1, [r5, #0x1c]
|
|
ldr r1, [r4, #0x198]
|
|
cmp r1, #0
|
|
bne _027E0444
|
|
mov r0, #0
|
|
strh r0, [r5, #0x20]
|
|
add r1, r5, #0x24
|
|
mov r2, #0x50
|
|
strh r0, [r5, #0x22]
|
|
bl sub_037FDF74
|
|
mov r0, #0
|
|
b _027E0468
|
|
_027E0444:
|
|
ldrh r1, [r0, #0x96]
|
|
add r0, r4, #0x19c
|
|
strh r1, [r5, #0x20]
|
|
ldrh r2, [r4, #0xc4]
|
|
add r1, r5, #0x24
|
|
strh r2, [r5, #0x22]
|
|
mov r2, #0x50
|
|
bl sub_037FE12C
|
|
mov r0, #1
|
|
_027E0468:
|
|
strh r0, [r5, #0x9e]
|
|
mov r0, #1
|
|
strh r0, [r5, #0x74]
|
|
strh r0, [r5, #0x76]
|
|
ldrh r0, [r4, #0xe6]
|
|
add r1, r5, #0x7c
|
|
cmp r0, #1
|
|
moveq r0, #0
|
|
movne r0, #0x10
|
|
strh r0, [r5, #0x78]
|
|
mov r0, #0xa
|
|
strh r0, [r5, #0x7a]
|
|
cmp r6, #0x26
|
|
mov r0, #0
|
|
bne _027E04B0
|
|
mov r2, #0x20
|
|
bl sub_037FDF74
|
|
b _027E04C8
|
|
_027E04B0:
|
|
mov r2, #8
|
|
bl sub_037FDF74
|
|
ldr r0, _027E051C ; =0x0000FFFF
|
|
add r1, r5, #0x84
|
|
mov r2, #0x18
|
|
bl sub_037FDF74
|
|
_027E04C8:
|
|
add r0, r4, #0x100
|
|
ldrh r1, [r0, #0xee]
|
|
mov r0, r5
|
|
strh r1, [r5, #0x9c]
|
|
bl sub_027E2404
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
moveq r0, #1
|
|
beq _027E0510
|
|
bl sub_03807380
|
|
strh r6, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x200
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
mov r0, #0
|
|
_027E0510:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E0518: .word 0x027F8878
|
|
_027E051C: .word 0x0000FFFF
|
|
arm_func_end sub_027E03D0
|
|
|
|
arm_func_start sub_027E0520
|
|
sub_027E0520: ; 0x027E0520
|
|
ldr r1, _027E0558 ; =0x027F8878
|
|
ldr r3, _027E055C ; =0x027F8DCC
|
|
ldr ip, [r1, #0x574]
|
|
ldr r2, _027E0560 ; =0x027FFF98
|
|
strb r0, [r3, ip]
|
|
ldr r3, [r1, #0x574]
|
|
add r3, r3, #1
|
|
and r3, r3, #0x1f
|
|
str r3, [r1, #0x574]
|
|
ldrh r1, [r2]
|
|
eor r0, r0, r1, lsl #1
|
|
eor r0, r0, r0, lsr #16
|
|
strh r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E0558: .word 0x027F8878
|
|
_027E055C: .word 0x027F8DCC
|
|
_027E0560: .word 0x027FFF98
|
|
arm_func_end sub_027E0520
|
|
|
|
arm_func_start sub_027E0564
|
|
sub_027E0564: ; 0x027E0564
|
|
ldr r2, _027E0594 ; =0x027F7878
|
|
mov r3, #0
|
|
_027E056C:
|
|
add r1, r2, r3
|
|
add r1, r1, #0x1000
|
|
add r3, r3, #1
|
|
strb r0, [r1, #0x554]
|
|
cmp r3, #0x20
|
|
blt _027E056C
|
|
ldr r0, _027E0598 ; =0x027F8878
|
|
mov r1, #0
|
|
str r1, [r0, #0x574]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E0594: .word 0x027F7878
|
|
_027E0598: .word 0x027F8878
|
|
arm_func_end sub_027E0564
|
|
|
|
arm_func_start sub_027E059C
|
|
sub_027E059C: ; 0x027E059C
|
|
ldr r1, _027E05D0 ; =0x027F7878
|
|
mov r3, #0
|
|
mov r2, r3
|
|
_027E05A8:
|
|
add r0, r1, r2
|
|
add r0, r0, #0x1000
|
|
ldrb r0, [r0, #0x554]
|
|
add r2, r2, #1
|
|
cmp r2, #0x20
|
|
add r3, r3, r0
|
|
blt _027E05A8
|
|
ldr ip, _027E05D4 ; =sub_027E05D8
|
|
mov r0, r3, lsr #5
|
|
bx ip
|
|
.align 2, 0
|
|
_027E05D0: .word 0x027F7878
|
|
_027E05D4: .word sub_027E05D8
|
|
arm_func_end sub_027E059C
|
|
|
|
arm_func_start sub_027E05D8
|
|
sub_027E05D8: ; 0x027E05D8
|
|
ldr r1, _027E063C ; =0x027F8878
|
|
ldr r1, [r1, #0x54c]
|
|
ldrb r1, [r1, #0x53]
|
|
cmp r1, #8
|
|
bne _027E0614
|
|
cmp r0, #0x16
|
|
movlo r0, #0
|
|
bxlo lr
|
|
cmp r0, #0x1c
|
|
movlo r0, #1
|
|
bxlo lr
|
|
cmp r0, #0x22
|
|
movlo r0, #2
|
|
movhs r0, #3
|
|
bx lr
|
|
_027E0614:
|
|
cmp r0, #8
|
|
movlo r0, #0
|
|
bxlo lr
|
|
cmp r0, #0xe
|
|
movlo r0, #1
|
|
bxlo lr
|
|
cmp r0, #0x14
|
|
movlo r0, #2
|
|
movhs r0, #3
|
|
bx lr
|
|
.align 2, 0
|
|
_027E063C: .word 0x027F8878
|
|
arm_func_end sub_027E05D8
|
|
|
|
arm_func_start sub_027E0640
|
|
sub_027E0640: ; 0x027E0640
|
|
stmdb sp!, {r4, lr}
|
|
bl sub_037FDD00
|
|
mov r4, r0
|
|
bl sub_037FC558
|
|
ldr r1, _027E0694 ; =0x027F8878
|
|
ldr r0, _027E0698 ; =0x0380B2C0
|
|
ldr r1, [r1, #0x58c]
|
|
bl sub_037FC3C0
|
|
bl sub_027E8BB0
|
|
ldr r1, _027E0694 ; =0x027F8878
|
|
ldr r1, [r1, #0x588]
|
|
bl sub_037FC3C0
|
|
ldr r1, _027E0694 ; =0x027F8878
|
|
ldr r0, _027E069C ; =0x0380B364
|
|
ldr r1, [r1, #0x584]
|
|
bl sub_037FC3C0
|
|
bl sub_037FC590
|
|
mov r0, r4
|
|
bl sub_037FDD14
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E0694: .word 0x027F8878
|
|
_027E0698: .word 0x0380B2C0
|
|
_027E069C: .word 0x0380B364
|
|
arm_func_end sub_027E0640
|
|
|
|
arm_func_start sub_027E06A0
|
|
sub_027E06A0: ; 0x027E06A0
|
|
stmdb sp!, {r4, lr}
|
|
bl sub_037FDD00
|
|
mov r4, r0
|
|
bl sub_037FC558
|
|
ldr r1, _027E06F4 ; =0x027F8878
|
|
ldr r0, _027E06F8 ; =0x0380B364
|
|
ldr r1, [r1, #0x578]
|
|
bl sub_037FC3C0
|
|
bl sub_027E8BB0
|
|
ldr r1, _027E06F4 ; =0x027F8878
|
|
ldr r1, [r1, #0x57c]
|
|
bl sub_037FC3C0
|
|
ldr r1, _027E06F4 ; =0x027F8878
|
|
ldr r0, _027E06FC ; =0x0380B2C0
|
|
ldr r1, [r1, #0x580]
|
|
bl sub_037FC3C0
|
|
bl sub_037FC590
|
|
mov r0, r4
|
|
bl sub_037FDD14
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E06F4: .word 0x027F8878
|
|
_027E06F8: .word 0x0380B364
|
|
_027E06FC: .word 0x0380B2C0
|
|
arm_func_end sub_027E06A0
|
|
|
|
arm_func_start sub_027E0700
|
|
sub_027E0700: ; 0x027E0700
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, #0
|
|
bl sub_037FDD00
|
|
ldr r1, _027E0768 ; =0x027F8878
|
|
ldr r2, [r1, #0x54c]
|
|
cmp r2, #0
|
|
beq _027E0758
|
|
mov r3, r4
|
|
b _027E0750
|
|
_027E0724:
|
|
add r1, r2, r3, lsl #4
|
|
ldr r1, [r1, #0xd0]
|
|
tst r1, #0x8000
|
|
beq _027E074C
|
|
add r2, r2, #0xd0
|
|
ldr r1, [r2, r3, lsl #4]
|
|
add r4, r2, r3, lsl #4
|
|
bic r1, r1, #0x8000
|
|
str r1, [r2, r3, lsl #4]
|
|
b _027E0758
|
|
_027E074C:
|
|
add r3, r3, #1
|
|
_027E0750:
|
|
cmp r3, #0x20
|
|
blt _027E0724
|
|
_027E0758:
|
|
bl sub_037FDD14
|
|
mov r0, r4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E0768: .word 0x027F8878
|
|
arm_func_end sub_027E0700
|
|
|
|
arm_func_start sub_027E076C
|
|
sub_027E076C: ; 0x027E076C
|
|
ldr r0, _027E079C ; =0x027F8878
|
|
mov r1, #0
|
|
ldr r0, [r0, #0x550]
|
|
strh r1, [r0, #0x38]
|
|
strh r1, [r0, #0x3a]
|
|
strh r1, [r0, #0x30]
|
|
strh r1, [r0, #0x32]
|
|
strh r1, [r0, #0x3c]
|
|
strh r1, [r0, #0x3e]
|
|
strh r1, [r0, #0x34]
|
|
strh r1, [r0, #0x36]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E079C: .word 0x027F8878
|
|
arm_func_end sub_027E076C
|
|
|
|
arm_func_start sub_027E07A0
|
|
sub_027E07A0: ; 0x027E07A0
|
|
ldr r1, _027E07EC ; =0x027F8878
|
|
cmp r0, #0x200
|
|
ldr r2, [r1, #0x550]
|
|
movhi r0, #0x200
|
|
strh r0, [r2, #0x30]
|
|
strh r0, [r2, #0x34]
|
|
add r1, r2, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
add r0, r0, #4
|
|
cmp r1, #0
|
|
moveq r0, r0, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
streqh r0, [r2, #0x3c]
|
|
streqh r0, [r2, #0x38]
|
|
movne r0, r0, lsl #0x10
|
|
movne r0, r0, lsr #0x10
|
|
strneh r0, [r2, #0x3e]
|
|
strneh r0, [r2, #0x3a]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E07EC: .word 0x027F8878
|
|
arm_func_end sub_027E07A0
|
|
|
|
arm_func_start sub_027E07F0
|
|
sub_027E07F0: ; 0x027E07F0
|
|
ldr r1, _027E083C ; =0x027F8878
|
|
cmp r0, #0x200
|
|
ldr r2, [r1, #0x550]
|
|
movhi r0, #0x200
|
|
strh r0, [r2, #0x36]
|
|
strh r0, [r2, #0x32]
|
|
add r1, r2, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
add r0, r0, #2
|
|
cmp r1, #0
|
|
moveq r0, r0, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
streqh r0, [r2, #0x3e]
|
|
streqh r0, [r2, #0x3a]
|
|
movne r0, r0, lsl #0x10
|
|
movne r0, r0, lsr #0x10
|
|
strneh r0, [r2, #0x3c]
|
|
strneh r0, [r2, #0x38]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E083C: .word 0x027F8878
|
|
arm_func_end sub_027E07F0
|
|
|
|
arm_func_start sub_027E0840
|
|
sub_027E0840: ; 0x027E0840
|
|
ldr r1, _027E0868 ; =0x027F8878
|
|
ldr r2, [r1, #0x550]
|
|
strh r0, [r2, #0x30]
|
|
add r1, r2, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
add r0, r0, #4
|
|
cmp r1, #0
|
|
streqh r0, [r2, #0x38]
|
|
strneh r0, [r2, #0x3a]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E0868: .word 0x027F8878
|
|
arm_func_end sub_027E0840
|
|
|
|
arm_func_start sub_027E086C
|
|
sub_027E086C: ; 0x027E086C
|
|
ldr r1, _027E0894 ; =0x027F8878
|
|
ldr r2, [r1, #0x550]
|
|
strh r0, [r2, #0x32]
|
|
add r1, r2, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
add r0, r0, #2
|
|
cmp r1, #0
|
|
streqh r0, [r2, #0x3a]
|
|
strneh r0, [r2, #0x38]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E0894: .word 0x027F8878
|
|
arm_func_end sub_027E086C
|
|
|
|
arm_func_start sub_027E0898
|
|
sub_027E0898: ; 0x027E0898
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x20
|
|
_027E08A0:
|
|
ldr r0, _027E16F0 ; =0x027F7878
|
|
add r1, sp, #0x1c
|
|
add r0, r0, #0x28
|
|
mov r2, #1
|
|
bl sub_037FC760
|
|
ldr sb, [sp, #0x1c]
|
|
cmp sb, #0
|
|
bne _027E08C8
|
|
bl sub_037FC15C
|
|
b _027E19F0
|
|
_027E08C8:
|
|
ldrh r1, [sb, #0xc]
|
|
and r0, r1, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
movs r0, r0, lsr #0x10
|
|
and r1, r1, #0xff
|
|
cmpne r0, #0x100
|
|
bne _027E19D8
|
|
tst r1, #0x80
|
|
beq _027E19D8
|
|
ldr r0, _027E16F4 ; =0x027F8878
|
|
ldr r1, [r0, #0x54c]
|
|
cmp r1, #0
|
|
ldrne r8, [r0, #0x550]
|
|
ldrneh r3, [r8]
|
|
cmpne r3, #1
|
|
beq _027E08A0
|
|
ldrh r2, [sb, #0xc]
|
|
ldr r1, _027E16F8 ; =0x00000182
|
|
cmp r2, r1
|
|
bgt _027E0964
|
|
bge _027E101C
|
|
cmp r2, #0x8d
|
|
bgt _027E0958
|
|
subs r0, r2, #0x84
|
|
addpl pc, pc, r0, lsl #2
|
|
b _027E19CC
|
|
_027E0930: ; jump table
|
|
b _027E0990 ; case 0
|
|
b _027E09B4 ; case 1
|
|
b _027E0C40 ; case 2
|
|
b _027E0DA4 ; case 3
|
|
b _027E0DC8 ; case 4
|
|
b _027E19CC ; case 5
|
|
b _027E19CC ; case 6
|
|
b _027E0DEC ; case 7
|
|
b _027E0E1C ; case 8
|
|
b _027E0E4C ; case 9
|
|
_027E0958:
|
|
cmp r2, #0x180
|
|
beq _027E0F64
|
|
b _027E19CC
|
|
_027E0964:
|
|
add r0, r1, #3
|
|
cmp r2, r0
|
|
bgt _027E0980
|
|
bge _027E1670
|
|
cmp r2, #0x184
|
|
beq _027E1318
|
|
b _027E19CC
|
|
_027E0980:
|
|
add r0, r1, #4
|
|
cmp r2, r0
|
|
beq _027E18D4
|
|
b _027E19CC
|
|
_027E0990:
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x13
|
|
strh r1, [r0, #4]
|
|
bl sub_03807334
|
|
b _027E19CC
|
|
_027E09B4:
|
|
cmp r3, #7
|
|
cmpne r3, #9
|
|
bne _027E0B3C
|
|
add r1, sp, #0x14
|
|
add r0, sb, #0x10
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
mov r6, #0
|
|
mov r5, r6
|
|
add r4, r8, #0x100
|
|
mov sl, #1
|
|
b _027E0AB4
|
|
_027E09E4:
|
|
bl sub_037FDD00
|
|
ldrh r2, [r4, #0x82]
|
|
add r1, r5, #1
|
|
mov r7, r0
|
|
tst r2, sl, lsl r1
|
|
beq _027E0AA8
|
|
mov r0, #6
|
|
mul r2, r5, r0
|
|
add r0, r8, r2
|
|
ldrb fp, [sp, #0x14]
|
|
ldrb r3, [r0, #0x128]
|
|
cmp fp, r3
|
|
ldreqb fp, [sp, #0x15]
|
|
ldreqb r3, [r0, #0x129]
|
|
cmpeq fp, r3
|
|
ldreqb fp, [sp, #0x16]
|
|
ldreqb r3, [r0, #0x12a]
|
|
cmpeq fp, r3
|
|
ldreqb fp, [sp, #0x17]
|
|
ldreqb r3, [r0, #0x12b]
|
|
cmpeq fp, r3
|
|
ldreqb fp, [sp, #0x18]
|
|
ldreqb r3, [r0, #0x12c]
|
|
cmpeq fp, r3
|
|
ldreqb r3, [sp, #0x19]
|
|
ldreqb r0, [r0, #0x12d]
|
|
cmpeq r3, r0
|
|
bne _027E0AA8
|
|
add r3, r8, #0x100
|
|
mov r0, r1, lsl #0x10
|
|
mov r6, r0, lsr #0x10
|
|
ldrh r0, [r3, #0x82]
|
|
mvn r1, sl, lsl r6
|
|
and r0, r0, r1
|
|
strh r0, [r3, #0x82]
|
|
ldrh r0, [r8, #0x86]
|
|
add r3, r8, r6, lsl #3
|
|
and r1, r0, r1
|
|
add r0, r8, #0x128
|
|
strh r1, [r8, #0x86]
|
|
mov r1, #0
|
|
str r1, [r3, #0x738]
|
|
add r0, r0, r2
|
|
mov r2, #6
|
|
str r1, [r3, #0x73c]
|
|
bl sub_037FE070
|
|
mov r0, r7
|
|
bl sub_037FDD14
|
|
b _027E0ABC
|
|
_027E0AA8:
|
|
mov r0, r7
|
|
bl sub_037FDD14
|
|
add r5, r5, #1
|
|
_027E0AB4:
|
|
cmp r5, #0xf
|
|
blt _027E09E4
|
|
_027E0ABC:
|
|
cmp r6, #0
|
|
beq _027E19CC
|
|
bl sub_03807380
|
|
mov r4, r0
|
|
mov r0, #8
|
|
strh r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
mov r0, #9
|
|
strh r0, [r4, #8]
|
|
ldrh r1, [sb, #0x16]
|
|
add r0, sb, #0x10
|
|
strh r1, [r4, #0x12]
|
|
strh r6, [r4, #0x10]
|
|
add r1, r4, #0xa
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
ldrh r1, [r8, #0x30]
|
|
mov r0, r4
|
|
strh r1, [r4, #0x2c]
|
|
ldrh r1, [r8, #0x32]
|
|
strh r1, [r4, #0x2e]
|
|
bl sub_03807334
|
|
ldr r0, [r8, #0xc]
|
|
cmp r0, #1
|
|
bne _027E19CC
|
|
mov r0, #1
|
|
mov r0, r0, lsl r6
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027E781C
|
|
b _027E19CC
|
|
_027E0B3C:
|
|
mov r5, #0
|
|
bl sub_037FDD00
|
|
add r1, r8, #0x100
|
|
ldrh r1, [r1, #0x82]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
bne _027E0B60
|
|
bl sub_037FDD14
|
|
b _027E19CC
|
|
_027E0B60:
|
|
ldr r0, [r8, #0xc]
|
|
cmp r0, #1
|
|
bne _027E0B80
|
|
mov r0, r5
|
|
str r0, [r8, #0xc]
|
|
mov r5, #1
|
|
bl sub_027E5B8C
|
|
bl sub_027E0640
|
|
_027E0B80:
|
|
add r0, r8, #0x100
|
|
mov r1, #0
|
|
strh r1, [r0, #0x82]
|
|
strh r1, [r8, #0x86]
|
|
str r1, [r8, #0x14]
|
|
str r1, [r8, #0x10]
|
|
str r1, [r8, #0x1c]
|
|
str r1, [r8, #0x198]
|
|
strh r1, [r0, #0x96]
|
|
add r0, r8, #0x19c
|
|
mov r2, #0x50
|
|
bl sub_037FE070
|
|
bl sub_027E076C
|
|
mov r0, #0
|
|
strh r0, [r8, #0xc2]
|
|
mov r1, #3
|
|
mov r0, r4
|
|
strh r1, [r8]
|
|
bl sub_037FDD14
|
|
bl sub_03807380
|
|
mov r4, r0
|
|
mov r0, #0xc
|
|
strh r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
mov r0, #9
|
|
strh r0, [r4, #8]
|
|
ldrh r1, [sb, #0x16]
|
|
add r0, r8, #0x100
|
|
strh r1, [r4, #0xc]
|
|
ldrh r1, [r0, #0x88]
|
|
add r0, r8, #0x8a
|
|
strh r1, [r4, #0xa]
|
|
add r0, r0, #0x100
|
|
add r1, r4, #0x10
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
ldrh r1, [r8, #0x30]
|
|
mov r0, r4
|
|
strh r1, [r4, #0x16]
|
|
ldrh r1, [r8, #0x32]
|
|
strh r1, [r4, #0x18]
|
|
bl sub_03807334
|
|
cmp r5, #0
|
|
beq _027E19CC
|
|
mov r0, #1
|
|
bl sub_027E781C
|
|
b _027E19CC
|
|
_027E0C40:
|
|
ldrh r5, [sb, #0x16]
|
|
cmp r5, #0
|
|
beq _027E19CC
|
|
cmp r5, #0x10
|
|
bhs _027E19CC
|
|
ldrh r0, [r8, #0xf6]
|
|
cmp r0, #0
|
|
bne _027E0CCC
|
|
bl sub_027E0700
|
|
movs r4, r0
|
|
moveq r0, #0
|
|
beq _027E0C98
|
|
mov r3, #0x22
|
|
add r0, sb, #0x10
|
|
add r1, r4, #4
|
|
mov r2, #6
|
|
str r3, [r4]
|
|
bl sub_037FE12C
|
|
ldr r0, _027E16FC ; =0x027F7900
|
|
mov r1, r4
|
|
mov r2, #0
|
|
bl sub_037FC6D4
|
|
_027E0C98:
|
|
cmp r0, #0
|
|
bne _027E19CC
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x22
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E19CC
|
|
_027E0CCC:
|
|
bl sub_037FDD00
|
|
add r1, r8, #0x100
|
|
mov r4, #1
|
|
ldrh r3, [r1, #0x82]
|
|
mvn r2, r4, lsl r5
|
|
orr r3, r3, r4, lsl r5
|
|
strh r3, [r1, #0x82]
|
|
ldrh r1, [r8, #0x86]
|
|
mov r4, r0
|
|
and r0, r1, r2
|
|
strh r0, [r8, #0x86]
|
|
bl sub_037FD21C
|
|
orr r2, r0, #1
|
|
add r0, r8, r5, lsl #3
|
|
add r3, r8, #0x128
|
|
str r2, [r0, #0x738]
|
|
orr r1, r1, #0
|
|
str r1, [r0, #0x73c]
|
|
sub r0, r5, #1
|
|
mov r2, #6
|
|
mla r1, r0, r2, r3
|
|
add r0, sb, #0x10
|
|
bl sub_037FE12C
|
|
mov r0, r4
|
|
bl sub_037FDD14
|
|
mov r0, #1
|
|
add r1, r8, #0x1f8
|
|
add r1, r1, r5, lsl #4
|
|
mov r2, #0x10
|
|
bl sub_037FDF74
|
|
bl sub_03807380
|
|
mov r4, r0
|
|
mov r0, #8
|
|
strh r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
mov r0, #7
|
|
strh r0, [r4, #8]
|
|
add r0, sb, #0x10
|
|
add r1, r4, #0xa
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
strh r5, [r4, #0x10]
|
|
add r0, sb, #0x22
|
|
add r1, r4, #0x14
|
|
mov r2, #0x18
|
|
bl sub_037FDF9C
|
|
ldrh r1, [r8, #0x30]
|
|
mov r0, r4
|
|
strh r1, [r4, #0x2c]
|
|
ldrh r1, [r8, #0x32]
|
|
strh r1, [r4, #0x2e]
|
|
bl sub_03807334
|
|
b _027E19CC
|
|
_027E0DA4:
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x12
|
|
strh r1, [r0, #4]
|
|
bl sub_03807334
|
|
b _027E19CC
|
|
_027E0DC8:
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x11
|
|
strh r1, [r0, #4]
|
|
bl sub_03807334
|
|
b _027E19CC
|
|
_027E0DEC:
|
|
ldrh r0, [r8, #0xc2]
|
|
cmp r0, #0
|
|
beq _027E19CC
|
|
bl sub_03807380
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #8
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E19CC
|
|
_027E0E1C:
|
|
ldrh r0, [r8, #0xc2]
|
|
cmp r0, #0
|
|
beq _027E19CC
|
|
bl sub_03807380
|
|
mov r1, #8
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #2
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E19CC
|
|
_027E0E4C:
|
|
ldrb r0, [sb, #0x1f]
|
|
bl sub_027E1A40
|
|
ldr r2, _027E1700 ; =0x027FFF98
|
|
ldrh r1, [r2]
|
|
eor r0, r0, r1, lsl #1
|
|
eor r0, r0, r0, lsr #16
|
|
strh r0, [r2]
|
|
ldrh r0, [r8]
|
|
cmp r0, #8
|
|
cmpne r0, #0xa
|
|
bne _027E19CC
|
|
ldrh r1, [r8, #0xba]
|
|
ldrh r0, [sb, #0x44]
|
|
cmp r1, r0
|
|
beq _027E0EF0
|
|
bl sub_027E0700
|
|
movs r1, r0
|
|
moveq r0, #0
|
|
beq _027E0EBC
|
|
mov r0, #0x25
|
|
str r0, [r1]
|
|
mov r0, #1
|
|
ldr r3, _027E1704 ; =0x00008002
|
|
str r0, [r1, #4]
|
|
ldr r0, _027E16FC ; =0x027F7900
|
|
mov r2, #0
|
|
str r3, [r1, #8]
|
|
bl sub_037FC6D4
|
|
_027E0EBC:
|
|
cmp r0, #0
|
|
bne _027E19CC
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x25
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E19CC
|
|
_027E0EF0:
|
|
ldr r0, _027E16F4 ; =0x027F8878
|
|
ldr r0, [r0, #0x550]
|
|
ldrh r0, [r0, #0xc2]
|
|
cmp r0, #0
|
|
beq _027E19CC
|
|
bl sub_03807380
|
|
mov r4, r0
|
|
mov r0, #0x80
|
|
strh r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x10
|
|
strh r0, [r4, #4]
|
|
ldrh r0, [sb, #0x44]
|
|
strh r0, [r4, #6]
|
|
ldrh r0, [r8]
|
|
strh r0, [r4, #8]
|
|
ldrh r0, [sb, #0x16]
|
|
strh r0, [r4, #0xa]
|
|
cmp r0, #0x80
|
|
bhi _027E0F58
|
|
add r2, r0, #1
|
|
add r0, sb, #0x3c
|
|
add r1, r4, #0xc
|
|
bic r2, r2, #1
|
|
bl sub_037FDF9C
|
|
_027E0F58:
|
|
mov r0, r4
|
|
bl sub_03807334
|
|
b _027E19CC
|
|
_027E0F64:
|
|
ldr r0, [r8, #0x10]
|
|
cmp r0, #0
|
|
beq _027E19CC
|
|
ldrb r0, [sb, #0x1f]
|
|
bl sub_027E1A40
|
|
bl sub_027E0520
|
|
bl sub_027E059C
|
|
strh r0, [r8, #0xbc]
|
|
add r0, sb, #0x2e
|
|
bl sub_027E02AC
|
|
cmp r0, #1
|
|
beq _027E19CC
|
|
ldrh r1, [sb, #0x16]
|
|
ldr r0, _027E1708 ; =0x000005E4
|
|
cmp r1, r0
|
|
bhi _027E19CC
|
|
ldrh r1, [r8, #0xae]
|
|
add r0, sb, #0x10
|
|
eor r1, r1, #1
|
|
strh r1, [r8, #0xae]
|
|
ldrh r2, [r8, #0xae]
|
|
ldrh r1, [sb, #0x16]
|
|
add r2, r8, r2, lsl #2
|
|
ldr r4, [r2, #0xb0]
|
|
add r2, r1, #0x2d
|
|
mov r1, r4
|
|
bic r2, r2, #1
|
|
bl sub_037FE12C
|
|
add r0, sb, #0x28
|
|
add r1, r4, #0x18
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
add r0, sb, #0x2e
|
|
add r1, r4, #0x1e
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
bl sub_03807380
|
|
mov r1, #0x11
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xf
|
|
strh r1, [r0, #4]
|
|
str r4, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E19CC
|
|
_027E101C:
|
|
ldrb r0, [sb, #0x1f]
|
|
bl sub_027E1A40
|
|
ldrh r1, [r8, #0xbe]
|
|
cmp r1, r0
|
|
strhih r0, [r8, #0xbe]
|
|
ldr r0, [r8, #0xc]
|
|
cmp r0, #0
|
|
beq _027E19CC
|
|
ldrh r0, [r8, #0x60]
|
|
cmp r0, #1
|
|
moveq r0, #0
|
|
streqh r0, [r8, #0x60]
|
|
ldrh r0, [r8, #0x70]
|
|
ldrh sl, [r8, #0x8e]
|
|
eor r0, r0, #1
|
|
strh r0, [r8, #0x70]
|
|
ldrh r0, [r8, #0x70]
|
|
ldrh r1, [sb, #0x16]
|
|
add r3, r8, r0, lsl #2
|
|
ldrh r0, [r8, #0x72]
|
|
add r2, r1, #0x30
|
|
ldr r4, [r3, #0x74]
|
|
cmp r0, r2
|
|
movlo r2, r0
|
|
mov r1, r4
|
|
add r0, sb, #0x10
|
|
bl sub_037FE12C
|
|
bl sub_037FDD00
|
|
ldrh r1, [r8, #0x84]
|
|
mov fp, r0
|
|
cmp r1, #1
|
|
mov r5, #0
|
|
bne _027E10AC
|
|
ldr r0, _027E170C ; =0x0380B408
|
|
mov r5, #1
|
|
bl sub_037FD5C0
|
|
_027E10AC:
|
|
mov r7, #1
|
|
strh r7, [r8, #0x84]
|
|
ldrh r0, [r4, #0xa]
|
|
mov ip, #0
|
|
strh r0, [r8, #0x82]
|
|
ldrh r6, [sb, #0x18]
|
|
ldr r0, _027E1710 ; =0x000082EA
|
|
tst r6, #0x2000
|
|
moveq r7, #0
|
|
strh r7, [r8, #0x90]
|
|
str ip, [sp]
|
|
ldrh r2, [r4, #0xa]
|
|
ldrh r1, [r4, #0xc]
|
|
sub r1, r2, r1
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
add r1, r1, #0x80
|
|
mov r1, r1, lsl #4
|
|
umull r3, r2, r1, r0
|
|
mla r2, r1, ip, r2
|
|
mov r1, r1, asr #0x1f
|
|
mla r2, r1, r0, r2
|
|
mov r0, r3, lsr #6
|
|
orr r0, r0, r2, lsl #26
|
|
mov r3, r2, lsr #6
|
|
mov r1, r0, lsr #0xa
|
|
ldr r0, _027E170C ; =0x0380B408
|
|
mov r2, r3, lsr #0xa
|
|
orr r1, r1, r3, lsl #22
|
|
ldr r3, _027E1714 ; =0x027E1B68
|
|
bl sub_037FD4DC
|
|
and r0, r6, #0x2800
|
|
cmp r0, #0x2800
|
|
moveq r1, #1
|
|
and r0, r6, #0x6000
|
|
movne r1, #0
|
|
cmp r0, #0x6000
|
|
moveq r2, #1
|
|
movne r2, #0
|
|
cmp r2, #0
|
|
movne r0, #0
|
|
strneh r0, [r8, #0x8a]
|
|
cmp r1, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
strh r0, [r8, #0x8e]
|
|
cmp r2, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
strh r0, [r8, #0x8c]
|
|
cmp r7, #0
|
|
beq _027E11B8
|
|
ldrh r0, [r4, #0x2c]
|
|
sub r1, r0, #0x66
|
|
mov r0, r1, asr #1
|
|
add r0, r1, r0, lsr #30
|
|
mov r0, r0, asr #2
|
|
subs r1, r0, #0x20
|
|
bmi _027E11B8
|
|
ldrh r0, [r8, #0x32]
|
|
cmp r1, #0x200
|
|
movgt r1, #0x200
|
|
cmp r1, r0
|
|
beq _027E11B8
|
|
mov r0, r1, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027E086C
|
|
_027E11B8:
|
|
mov r0, fp
|
|
bl sub_037FDD14
|
|
cmp r5, #0
|
|
beq _027E1204
|
|
cmp sl, #1
|
|
bne _027E11DC
|
|
mov r0, r5
|
|
mov r1, #0
|
|
bl sub_027E74EC
|
|
_027E11DC:
|
|
bl sub_03807380
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
mov r1, #9
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xd
|
|
strh r1, [r0, #4]
|
|
mov r1, #0
|
|
str r1, [r0, #8]
|
|
bl sub_03807334
|
|
_027E1204:
|
|
cmp r7, #0
|
|
bne _027E1230
|
|
ldrh r0, [r4, #6]
|
|
cmp r0, #2
|
|
blo _027E19CC
|
|
ldrh r0, [r4, #0x30]
|
|
tst r0, #0x8000
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
strh r0, [r8, #0x5e]
|
|
b _027E19CC
|
|
_027E1230:
|
|
add r0, sb, #0x28
|
|
add r1, r4, #0x18
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
add r0, sb, #0x2e
|
|
add r1, r4, #0x1e
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
ldrh r0, [r4, #6]
|
|
cmp r0, #2
|
|
blo _027E12C0
|
|
sub r0, r0, #2
|
|
strh r0, [r4, #6]
|
|
ldrh r0, [r4, #0x30]
|
|
tst r0, #0x8000
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
strh r0, [r8, #0x5e]
|
|
bl sub_03807380
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xc
|
|
strh r1, [r0, #4]
|
|
str r4, [r0, #8]
|
|
bl sub_03807334
|
|
ldrh r3, [r4, #6]
|
|
cmp r3, #0
|
|
beq _027E12EC
|
|
str r4, [sp]
|
|
ldrh r1, [r4, #0x30]
|
|
add r2, r4, #0x32
|
|
mov r0, #0
|
|
bl sub_027E7A10
|
|
b _027E12EC
|
|
_027E12C0:
|
|
mov r0, #0
|
|
strh r0, [r4, #6]
|
|
strh r0, [r8, #0x5e]
|
|
bl sub_03807380
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xc
|
|
strh r1, [r0, #4]
|
|
str r4, [r0, #8]
|
|
bl sub_03807334
|
|
_027E12EC:
|
|
ldr r0, [r8, #0x7bc]
|
|
ldr r1, [r8, #0x7b8]
|
|
cmp r0, #0
|
|
cmpeq r1, #0
|
|
beq _027E19CC
|
|
bl sub_037FD21C
|
|
orr r0, r0, #1
|
|
str r0, [r8, #0x738]
|
|
orr r0, r1, #0
|
|
str r0, [r8, #0x73c]
|
|
b _027E19CC
|
|
_027E1318:
|
|
ldr r0, [r8, #0xc]
|
|
mov fp, #0
|
|
cmp r0, #0
|
|
beq _027E19CC
|
|
ldrh r0, [sb, #0x12]
|
|
cmp r0, #0
|
|
bne _027E134C
|
|
ldrh r1, [r8, #0x66]
|
|
cmp r1, #1
|
|
bne _027E1354
|
|
ldrh r0, [sb, #0x10]
|
|
cmp r0, #0
|
|
beq _027E1354
|
|
_027E134C:
|
|
bl sub_027E1A54
|
|
b _027E19CC
|
|
_027E1354:
|
|
cmp r1, #0
|
|
movne r0, #0
|
|
strneh r0, [r8, #0x66]
|
|
ldrh r1, [sb, #0x16]
|
|
ldrh r0, [sb, #0x14]
|
|
ldrh r3, [r8, #0x70]
|
|
mul r2, r1, r0
|
|
add r1, r8, r3, lsl #2
|
|
ldr r4, [r1, #0x74]
|
|
ldrh r0, [r8, #0x72]
|
|
add r2, r2, #0xa
|
|
cmp r0, r2
|
|
movlo r2, r0
|
|
mov r1, r4
|
|
add r0, sb, #0x10
|
|
bl sub_037FE12C
|
|
ldr r0, _027E16F4 ; =0x027F8878
|
|
ldrh r1, [r4]
|
|
ldr r7, [r0, #0x550]
|
|
cmp r1, #0
|
|
ldrh r5, [r7, #0xbe]
|
|
bne _027E13F0
|
|
ldrh r0, [sb, #0x14]
|
|
cmp r0, #1
|
|
blo _027E13F0
|
|
add sl, sb, #0x1a
|
|
mov r6, #0
|
|
b _027E13E0
|
|
_027E13C4:
|
|
ldrh r1, [sb, #0x16]
|
|
mla r0, r1, r6, sl
|
|
ldrb r0, [r0, #3]
|
|
bl sub_027E1A40
|
|
cmp r0, r5
|
|
movlo r5, r0
|
|
add r6, r6, #1
|
|
_027E13E0:
|
|
ldrh r0, [sb, #0x14]
|
|
cmp r6, r0
|
|
blt _027E13C4
|
|
strh r5, [r7, #0xbe]
|
|
_027E13F0:
|
|
bl sub_037FD21C
|
|
orr r0, r0, #1
|
|
str r0, [sp, #8]
|
|
ldr r0, _027E1718 ; =0x00008001
|
|
orr r1, r1, #0
|
|
rsb r0, r0, #0x18000
|
|
ldrh r6, [r4]
|
|
str r1, [sp, #0xc]
|
|
add r5, r4, #0xa
|
|
mov sl, #0
|
|
str r0, [sp, #0x10]
|
|
b _027E1588
|
|
_027E1420:
|
|
ldrh r7, [r5, #4]
|
|
ldrh r1, [r5]
|
|
cmp r7, #1
|
|
blo _027E1574
|
|
cmp r7, #0xf
|
|
bhi _027E1574
|
|
cmp r1, #2
|
|
blo _027E149C
|
|
ldr r0, [sp, #0x10]
|
|
cmp r1, r0
|
|
beq _027E149C
|
|
sub r0, r1, #2
|
|
mov r0, r0, lsl #0x10
|
|
movs r3, r0, lsr #0x10
|
|
strh r3, [r5]
|
|
ldrh r2, [r8, #0x86]
|
|
mov r1, #1
|
|
orr r1, r2, r1, lsl r7
|
|
strh r1, [r8, #0x86]
|
|
ldr r1, [sp, #8]
|
|
add r0, r8, r7, lsl #3
|
|
str r1, [r0, #0x738]
|
|
ldr r1, [sp, #0xc]
|
|
str r1, [r0, #0x73c]
|
|
beq _027E1574
|
|
mov r0, r7
|
|
str r4, [sp]
|
|
ldrh r1, [r5, #8]
|
|
add r2, r5, #0xa
|
|
bl sub_027E7A10
|
|
b _027E1574
|
|
_027E149C:
|
|
cmp r1, #0
|
|
bne _027E1574
|
|
add r0, r8, r7, lsl #3
|
|
ldr r2, [r0, #0x738]
|
|
ldr r1, [r0, #0x73c]
|
|
mov r0, #1
|
|
mov r0, r0, lsl r7
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
orr r6, r6, r0, lsl r7
|
|
ldr ip, [r8, #0x7bc]
|
|
ldr r0, [r8, #0x7b8]
|
|
cmp ip, #0
|
|
mov r3, #0
|
|
cmpeq r0, #0
|
|
beq _027E1574
|
|
cmp r1, r3
|
|
cmpeq r2, r3
|
|
beq _027E1574
|
|
ldr r3, [sp, #8]
|
|
subs r3, r3, r2
|
|
ldr r2, [sp, #0xc]
|
|
sbc r1, r2, r1
|
|
cmp r1, ip
|
|
cmpeq r3, r0
|
|
bls _027E1574
|
|
bl sub_027E0700
|
|
movs r1, r0
|
|
add r2, r8, r7, lsl #3
|
|
mov r0, #0
|
|
str r0, [r2, #0x738]
|
|
str r0, [r2, #0x73c]
|
|
beq _027E1544
|
|
mov r0, #0x25
|
|
str r0, [r1]
|
|
ldr r0, [sp, #4]
|
|
mov r2, #0
|
|
str r0, [r1, #4]
|
|
ldr r0, _027E1718 ; =0x00008001
|
|
str r0, [r1, #8]
|
|
ldr r0, _027E16FC ; =0x027F7900
|
|
bl sub_037FC6D4
|
|
_027E1544:
|
|
cmp r0, #0
|
|
bne _027E1574
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x25
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
_027E1574:
|
|
add r0, sl, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov sl, r0, lsr #0x10
|
|
ldrh r0, [r4, #6]
|
|
add r5, r5, r0
|
|
_027E1588:
|
|
ldrh r0, [r4, #4]
|
|
cmp sl, r0
|
|
blo _027E1420
|
|
mov r0, r6, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
mov r0, #0
|
|
bl sub_027E74EC
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
movne fp, #1
|
|
bl sub_03807380
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xb
|
|
strh r1, [r0, #4]
|
|
str r4, [r0, #8]
|
|
bl sub_03807334
|
|
ldrh r0, [r8, #0x70]
|
|
eor r0, r0, #1
|
|
strh r0, [r8, #0x70]
|
|
bl sub_037FDD00
|
|
cmp fp, #0
|
|
ldreqsh r1, [r8, #0x62]
|
|
subeq r1, r1, #1
|
|
streqh r1, [r8, #0x62]
|
|
ldrsh r1, [r8, #0x64]
|
|
cmp r1, #0
|
|
subgt r1, r1, #1
|
|
strgth r1, [r8, #0x64]
|
|
ldrsh r1, [r8, #0x62]
|
|
cmp r1, #0
|
|
ldrgtsh r1, [r8, #0x64]
|
|
cmpgt r1, #0
|
|
movgt r4, #1
|
|
movle r4, #0
|
|
bl sub_037FDD14
|
|
cmp r4, #0
|
|
beq _027E19CC
|
|
cmp fp, #1
|
|
ldreqh r4, [sb, #0x10]
|
|
ldrh r0, [r8, #0x44]
|
|
ldrne r4, _027E171C ; =0x0000FFFF
|
|
cmp r0, #0
|
|
beq _027E1664
|
|
ldr r0, _027E1720 ; =0x0380B434
|
|
bl sub_037FD5C0
|
|
str r4, [sp]
|
|
ldr r1, [r8, #0x48]
|
|
ldr r2, [r8, #0x4c]
|
|
ldr r0, _027E1720 ; =0x0380B434
|
|
ldr r3, _027E1724 ; =0x027E1AD4
|
|
bl sub_037FD4DC
|
|
b _027E19CC
|
|
_027E1664:
|
|
mov r0, r4
|
|
bl sub_027E1AE8
|
|
b _027E19CC
|
|
_027E1670:
|
|
ldr r0, [r8, #0xc]
|
|
mov r5, #0
|
|
cmp r0, #0
|
|
beq _027E19CC
|
|
ldrh r0, [sb, #0xe]
|
|
cmp r0, #0
|
|
bne _027E16D0
|
|
ldr r1, _027E1728 ; =0x048080F8
|
|
mov r4, #1
|
|
ldrh r0, [r1]
|
|
ldrh r3, [r1, #2]
|
|
ldrh r2, [r1]
|
|
cmp r0, r2
|
|
ldrhih r3, [r1, #2]
|
|
mov r0, r2, asr #4
|
|
orr r0, r0, r3, lsl #12
|
|
ldrh r1, [r8, #0x82]
|
|
mov r0, r0, lsl #0x10
|
|
rsb r0, r1, r0, lsr #16
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, asr #0x10
|
|
cmp r0, #0
|
|
ble _027E19CC
|
|
b _027E16D4
|
|
_027E16D0:
|
|
mov r4, r5
|
|
_027E16D4:
|
|
bl sub_037FDD00
|
|
ldrh r1, [r8, #0x84]
|
|
mov r7, r0
|
|
cmp r1, #0
|
|
bne _027E172C
|
|
bl sub_037FDD14
|
|
b _027E19CC
|
|
.align 2, 0
|
|
_027E16F0: .word 0x027F7878
|
|
_027E16F4: .word 0x027F8878
|
|
_027E16F8: .word 0x00000182
|
|
_027E16FC: .word 0x027F7900
|
|
_027E1700: .word 0x027FFF98
|
|
_027E1704: .word 0x00008002
|
|
_027E1708: .word 0x000005E4
|
|
_027E170C: .word 0x0380B408
|
|
_027E1710: .word 0x000082EA
|
|
_027E1714: .word 0x027E1B68
|
|
_027E1718: .word 0x00008001
|
|
_027E171C: .word 0x0000FFFF
|
|
_027E1720: .word 0x0380B434
|
|
_027E1724: .word 0x027E1AD4
|
|
_027E1728: .word 0x048080F8
|
|
_027E172C:
|
|
ldr r0, _027E170C ; =0x0380B408
|
|
mov r1, #0
|
|
strh r1, [r8, #0x84]
|
|
ldrh r6, [r8, #0x90]
|
|
bl sub_037FD5C0
|
|
mov r0, r7
|
|
bl sub_037FDD14
|
|
ldrh r3, [r8, #0x8c]
|
|
mov r2, #1
|
|
cmp r3, #0
|
|
beq _027E1778
|
|
cmp r4, #0
|
|
bne _027E1774
|
|
add r0, r8, #0x100
|
|
ldrh r1, [sb, #0x3e]
|
|
ldrh r0, [r0, #0x88]
|
|
tst r1, r2, lsl r0
|
|
bne _027E1778
|
|
_027E1774:
|
|
mov r2, #0
|
|
_027E1778:
|
|
cmp r3, #0
|
|
movne r0, #0
|
|
strneh r0, [r8, #0x8c]
|
|
ldrh r0, [r8, #0x8e]
|
|
cmp r0, #0
|
|
beq _027E17B4
|
|
mov r0, #0
|
|
strh r0, [r8, #0x8e]
|
|
cmp r2, #0
|
|
movne r0, #1
|
|
mov r1, r0, lsl #0x10
|
|
mov r0, r4
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_027E74EC
|
|
mov r5, r0
|
|
_027E17B4:
|
|
cmp r6, #0
|
|
beq _027E19CC
|
|
bl sub_03807380
|
|
mov r7, r0
|
|
mov r0, #0xe
|
|
strh r0, [r7]
|
|
cmp r4, #0
|
|
movne r0, #9
|
|
strneh r0, [r7, #2]
|
|
bne _027E1800
|
|
add r0, r8, #0x100
|
|
ldrh r2, [sb, #0x3e]
|
|
ldrh r0, [r0, #0x88]
|
|
mov r1, #1
|
|
tst r2, r1, lsl r0
|
|
movne r0, #0xf
|
|
strneh r0, [r7, #2]
|
|
moveq r0, #0
|
|
streqh r0, [r7, #2]
|
|
_027E1800:
|
|
mov r0, #0xd
|
|
strh r0, [r7, #4]
|
|
mov r0, #0
|
|
str r0, [r7, #8]
|
|
cmp r4, #0
|
|
bne _027E1860
|
|
ldrh r1, [sb, #0x1c]
|
|
add r0, sb, #0x28
|
|
strh r1, [r7, #0xc]
|
|
ldrh r2, [sb, #0x1e]
|
|
add r1, r7, #0x10
|
|
strh r2, [r7, #0xe]
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
add r0, sb, #0x2e
|
|
add r1, r7, #0x16
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
ldrh r0, [sb, #0x3a]
|
|
strh r0, [r7, #0x1c]
|
|
ldrh r0, [sb, #0x3c]
|
|
strh r0, [r7, #0x1e]
|
|
ldrh r0, [sb, #0x3e]
|
|
strh r0, [r7, #0x20]
|
|
_027E1860:
|
|
mov r0, r7
|
|
bl sub_03807334
|
|
cmp r6, #0
|
|
beq _027E19CC
|
|
cmp r5, #1
|
|
ldrneh r0, [r8, #0x5e]
|
|
cmpne r0, #0
|
|
bne _027E18BC
|
|
ldrh r0, [r8, #0x46]
|
|
cmp r0, #0
|
|
beq _027E18B4
|
|
ldr r0, _027E1720 ; =0x0380B434
|
|
bl sub_037FD5C0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r1, [r8, #0x50]
|
|
ldr r2, [r8, #0x54]
|
|
ldr r0, _027E1720 ; =0x0380B434
|
|
ldr r3, _027E19FC ; =0x027E1C00
|
|
bl sub_037FD4DC
|
|
b _027E19CC
|
|
_027E18B4:
|
|
bl sub_027E1C0C
|
|
b _027E19CC
|
|
_027E18BC:
|
|
mov r1, #0
|
|
strh r1, [r8, #0x5e]
|
|
mov r0, #1
|
|
strh r0, [r8, #0x60]
|
|
strh r1, [r8, #0x88]
|
|
b _027E19CC
|
|
_027E18D4:
|
|
add r0, r8, #0x700
|
|
ldrh r0, [r0, #0xcc]
|
|
cmp r0, #1
|
|
ldreqh r0, [sb, #0x10]
|
|
cmpeq r0, #0x20
|
|
bne _027E1948
|
|
bl sub_037FDD00
|
|
mov r4, r0
|
|
ldr r0, _027E170C ; =0x0380B408
|
|
bl sub_037FD5C0
|
|
mov r1, #0
|
|
mov r0, r4
|
|
strh r1, [r8, #0x84]
|
|
bl sub_037FDD14
|
|
mov r1, #0
|
|
strh r1, [r8, #0x8a]
|
|
mov r0, #1
|
|
bl sub_027E74EC
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x17
|
|
strh r1, [r0, #4]
|
|
mov r1, #1
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E19CC
|
|
_027E1948:
|
|
bl sub_027E0700
|
|
movs r1, r0
|
|
moveq r0, #0
|
|
beq _027E199C
|
|
ldr r0, _027E1A00 ; =0x00008003
|
|
mov r2, #0x25
|
|
str r2, [r1]
|
|
str r0, [r1, #8]
|
|
ldrh r0, [r8]
|
|
cmp r0, #9
|
|
cmpne r0, #7
|
|
ldreq r0, _027E1A04 ; =0x00007FFE
|
|
streq r0, [r1, #4]
|
|
beq _027E1990
|
|
cmp r0, #0xa
|
|
cmpne r0, #8
|
|
moveq r0, #1
|
|
streq r0, [r1, #4]
|
|
_027E1990:
|
|
ldr r0, _027E16FC ; =0x027F7900
|
|
mov r2, #0
|
|
bl sub_037FC6D4
|
|
_027E199C:
|
|
cmp r0, #0
|
|
bne _027E19CC
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x25
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
_027E19CC:
|
|
mov r0, sb
|
|
bl sub_027E1A08
|
|
b _027E08A0
|
|
_027E19D8:
|
|
ldr r0, _027E16F0 ; =0x027F7878
|
|
mov r1, sb
|
|
add r0, r0, #0x58
|
|
mov r2, #1
|
|
bl sub_037FC6D4
|
|
b _027E08A0
|
|
_027E19F0:
|
|
add sp, sp, #0x20
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E19FC: .word 0x027E1C00
|
|
_027E1A00: .word 0x00008003
|
|
_027E1A04: .word 0x00007FFE
|
|
arm_func_end sub_027E0898
|
|
|
|
arm_func_start sub_027E1A08
|
|
sub_027E1A08: ; 0x027E1A08
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl sub_037FDD00
|
|
ldr r1, _027E1A3C ; =0x027F8878
|
|
mov r4, r0
|
|
ldr r0, [r1, #0x544]
|
|
ldr r1, [r1, #0x548]
|
|
mov r2, r5
|
|
bl sub_037FCD84
|
|
mov r0, r4
|
|
bl sub_037FDD14
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E1A3C: .word 0x027F8878
|
|
arm_func_end sub_027E1A08
|
|
|
|
arm_func_start sub_027E1A40
|
|
sub_027E1A40: ; 0x027E1A40
|
|
tst r0, #2
|
|
mov r0, r0, asr #2
|
|
addeq r0, r0, #0x19
|
|
and r0, r0, #0xff
|
|
bx lr
|
|
arm_func_end sub_027E1A40
|
|
|
|
arm_func_start sub_027E1A54
|
|
sub_027E1A54: ; 0x027E1A54
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027E1ACC ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
bl sub_027E0700
|
|
movs r1, r0
|
|
moveq r0, #0
|
|
beq _027E1A8C
|
|
mov r0, #0x2d
|
|
str r0, [r1]
|
|
ldrh r3, [r4, #0x68]
|
|
ldr r0, _027E1AD0 ; =0x027F7900
|
|
mov r2, #0
|
|
str r3, [r1, #4]
|
|
bl sub_037FC6D4
|
|
_027E1A8C:
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
strneh r0, [r4, #0x66]
|
|
bne _027E1AC4
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x2d
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
_027E1AC4:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E1ACC: .word 0x027F8878
|
|
_027E1AD0: .word 0x027F7900
|
|
arm_func_end sub_027E1A54
|
|
|
|
arm_func_start sub_027E1AD4
|
|
sub_027E1AD4: ; 0x027E1AD4
|
|
ldr ip, _027E1AE4 ; =sub_027E1AE8
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bx ip
|
|
.align 2, 0
|
|
_027E1AE4: .word sub_027E1AE8
|
|
arm_func_end sub_027E1AD4
|
|
|
|
arm_func_start sub_027E1AE8
|
|
sub_027E1AE8: ; 0x027E1AE8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl sub_027E0700
|
|
movs r1, r0
|
|
ldr r4, _027E1B64 ; =0x027F7878
|
|
moveq r0, #0
|
|
beq _027E1B1C
|
|
mov r0, #0x2b
|
|
str r0, [r1]
|
|
add r0, r4, #0x88
|
|
mov r2, #0
|
|
str r5, [r1, #4]
|
|
bl sub_037FC6D4
|
|
_027E1B1C:
|
|
cmp r0, #0
|
|
bne _027E1B5C
|
|
add r0, r4, #0x1000
|
|
ldr r0, [r0, #0x54c]
|
|
cmp r0, #0
|
|
beq _027E1B5C
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x2b
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
_027E1B5C:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E1B64: .word 0x027F7878
|
|
arm_func_end sub_027E1AE8
|
|
|
|
arm_func_start sub_027E1B68
|
|
sub_027E1B68: ; 0x027E1B68
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _027E1BF0 ; =0x027F8878
|
|
mov r2, #0x40
|
|
ldr r0, [r1, #0x544]
|
|
ldr r1, [r1, #0x548]
|
|
ldr r5, _027E1BF4 ; =0x027F7878
|
|
bl sub_037FCC74
|
|
mov r4, r0
|
|
ldr r1, _027E1BF8 ; =0x00000185
|
|
ldr r0, _027E1BFC ; =0x027F78A0
|
|
strh r1, [r4, #0xc]
|
|
mov r2, #0
|
|
mov r1, r4
|
|
strh r2, [r4, #0xe]
|
|
bl sub_037FC6D4
|
|
cmp r0, #0
|
|
bne _027E1BE8
|
|
mov r0, r4
|
|
bl sub_027E1A08
|
|
add r0, r5, #0x1000
|
|
ldr r0, [r0, #0x54c]
|
|
cmp r0, #0
|
|
beq _027E1BE8
|
|
bl sub_03807380
|
|
mov r2, #0x80
|
|
strh r2, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
strh r2, [r0, #6]
|
|
bl sub_03807334
|
|
_027E1BE8:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E1BF0: .word 0x027F8878
|
|
_027E1BF4: .word 0x027F7878
|
|
_027E1BF8: .word 0x00000185
|
|
_027E1BFC: .word 0x027F78A0
|
|
arm_func_end sub_027E1B68
|
|
|
|
arm_func_start sub_027E1C00
|
|
sub_027E1C00: ; 0x027E1C00
|
|
ldr ip, _027E1C08 ; =sub_027E1C0C
|
|
bx ip
|
|
.align 2, 0
|
|
_027E1C08: .word sub_027E1C0C
|
|
arm_func_end sub_027E1C00
|
|
|
|
arm_func_start sub_027E1C0C
|
|
sub_027E1C0C: ; 0x027E1C0C
|
|
stmdb sp!, {r4, lr}
|
|
bl sub_027E0700
|
|
ldr r2, _027E1C94 ; =0x027F8878
|
|
movs r1, r0
|
|
ldr r0, [r2, #0x550]
|
|
mov r2, #0
|
|
strh r2, [r0, #0x5e]
|
|
strh r2, [r0, #0x60]
|
|
ldr r4, _027E1C98 ; =0x027F7878
|
|
strh r2, [r0, #0x88]
|
|
beq _027E1C4C
|
|
mov r3, #0x2c
|
|
add r0, r4, #0x88
|
|
str r3, [r1]
|
|
bl sub_037FC6D4
|
|
mov r2, r0
|
|
_027E1C4C:
|
|
cmp r2, #0
|
|
bne _027E1C8C
|
|
add r0, r4, #0x1000
|
|
ldr r0, [r0, #0x54c]
|
|
cmp r0, #0
|
|
beq _027E1C8C
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x2c
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
_027E1C8C:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E1C94: .word 0x027F8878
|
|
_027E1C98: .word 0x027F7878
|
|
arm_func_end sub_027E1C0C
|
|
|
|
arm_func_start sub_027E1C9C
|
|
sub_027E1C9C: ; 0x027E1C9C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027E1CB8 ; =0x0380B434
|
|
bl sub_037FD3A0
|
|
ldr r0, _027E1CBC ; =0x0380B408
|
|
bl sub_037FD3A0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E1CB8: .word 0x0380B434
|
|
_027E1CBC: .word 0x0380B408
|
|
arm_func_end sub_027E1C9C
|
|
|
|
arm_func_start sub_027E1CC0
|
|
sub_027E1CC0: ; 0x027E1CC0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r0, _027E1D58 ; =0x027F8878
|
|
mov r6, #1
|
|
ldr r8, _027E1D5C ; =0x027F7878
|
|
ldr sb, [r0, #0x550]
|
|
ldr r5, _027E1D60 ; =0x027F7184
|
|
add r7, sp, #0
|
|
mov r4, #0
|
|
mov fp, r6
|
|
_027E1CE4:
|
|
mov r1, r7
|
|
mov r2, fp
|
|
add r0, r8, #0x88
|
|
bl sub_037FC760
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
bne _027E1D08
|
|
bl sub_037FC15C
|
|
b _027E1D50
|
|
_027E1D08:
|
|
ldrh sl, [r0]
|
|
tst sl, #0x8000
|
|
bicne r0, sl, #0x8000
|
|
movne r0, r0, lsl #0x10
|
|
movne sl, r0, lsr #0x10
|
|
cmp sl, #0x2e
|
|
bhs _027E1D40
|
|
str r6, [sb, #4]
|
|
strh sl, [sb, #2]
|
|
ldr r0, [sp]
|
|
ldr r1, [r5, sl, lsl #2]
|
|
mov lr, pc
|
|
bx r1
|
|
_027E1D3C:
|
|
str r4, [sb, #4]
|
|
_027E1D40:
|
|
ldr r0, [sp]
|
|
orr r1, sl, #0x8000
|
|
strh r1, [r0]
|
|
b _027E1CE4
|
|
_027E1D50:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E1D58: .word 0x027F8878
|
|
_027E1D5C: .word 0x027F7878
|
|
_027E1D60: .word 0x027F7184
|
|
arm_func_end sub_027E1CC0
|
|
|
|
arm_func_start sub_027E1D64
|
|
sub_027E1D64: ; 0x027E1D64
|
|
bx lr
|
|
arm_func_end sub_027E1D64
|
|
|
|
arm_func_start sub_027E1D68
|
|
sub_027E1D68: ; 0x027E1D68
|
|
stmdb sp!, {r4, lr}
|
|
mov r2, #0
|
|
strh r2, [r0]
|
|
strh r2, [r0, #2]
|
|
strh r2, [r0, #4]
|
|
strh r2, [r0, #6]
|
|
strh r2, [r0, #8]
|
|
strh r2, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027E1D68
|
|
|
|
arm_func_start sub_027E1DBC
|
|
sub_027E1DBC: ; 0x027E1DBC
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, #0
|
|
strh r4, [r0]
|
|
strh r4, [r0, #2]
|
|
strh r4, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
strh r4, [r0, #8]
|
|
strh r4, [r0, #0xa]
|
|
mov ip, #1
|
|
strh ip, [r0, #0xc]
|
|
mov r4, #3
|
|
strh r4, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
strh r2, [r0, #0x12]
|
|
strh r3, [r0, #0x14]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh ip, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027E1DBC
|
|
|
|
arm_func_start sub_027E1E1C
|
|
sub_027E1E1C: ; 0x027E1E1C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r4, r0
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
strh r0, [r4, #2]
|
|
strh r0, [r4, #4]
|
|
strh r0, [r4, #6]
|
|
strh r0, [r4, #8]
|
|
strh r0, [r4, #0xa]
|
|
mov r5, #2
|
|
mov r7, r1
|
|
mov r0, r2
|
|
strh r5, [r4, #0xc]
|
|
mov r5, #0x1f
|
|
add r1, r4, #0x10
|
|
mov r2, #6
|
|
mov r6, r3
|
|
strh r5, [r4, #0xe]
|
|
bl sub_037FDF9C
|
|
ldr r0, [sp, #0x18]
|
|
add r1, r4, #0x18
|
|
mov r2, #0x20
|
|
strh r6, [r4, #0x16]
|
|
bl sub_037FDF9C
|
|
ldrh r2, [sp, #0x1c]
|
|
ldr r0, [sp, #0x20]
|
|
add r1, r4, #0x3a
|
|
strh r2, [r4, #0x38]
|
|
mov r2, #0x10
|
|
bl sub_037FDF9C
|
|
ldrh r1, [sp, #0x24]
|
|
mov r0, r7, lsr #1
|
|
strh r1, [r4, #0x4a]
|
|
mov r1, #0
|
|
strh r1, [r4, #0x4c]
|
|
ldrh r2, [r4, #0xe]
|
|
ldrh r1, [r4, #0xc]
|
|
add r5, r4, r2, lsl #1
|
|
strh r1, [r5, #0x10]
|
|
sub r1, r0, #0x2c
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_027E1E1C
|
|
|
|
arm_func_start sub_027E1ED4
|
|
sub_027E1ED4: ; 0x027E1ED4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
mov r3, #0
|
|
strh r3, [r4]
|
|
strh r3, [r4, #2]
|
|
strh r3, [r4, #4]
|
|
strh r3, [r4, #6]
|
|
strh r3, [r4, #8]
|
|
strh r3, [r4, #0xa]
|
|
mov r0, #3
|
|
strh r0, [r4, #0xc]
|
|
mov r0, #0x22
|
|
strh r0, [r4, #0xe]
|
|
strh r1, [r4, #0x10]
|
|
mov r0, r2
|
|
strh r3, [r4, #0x12]
|
|
add r1, r4, #0x14
|
|
mov r2, #0x44
|
|
bl sub_037FDF9C
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #5
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027E1ED4
|
|
|
|
arm_func_start sub_027E1F4C
|
|
sub_027E1F4C: ; 0x027E1F4C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r4, r0
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
strh r0, [r4, #2]
|
|
strh r0, [r4, #4]
|
|
strh r0, [r4, #6]
|
|
strh r0, [r4, #8]
|
|
strh r0, [r4, #0xa]
|
|
mov r0, #4
|
|
strh r0, [r4, #0xc]
|
|
mov r5, #5
|
|
mov r6, r2
|
|
mov r0, r1
|
|
strh r5, [r4, #0xe]
|
|
add r1, r4, #0x10
|
|
mov r2, #6
|
|
mov r5, r3
|
|
bl sub_037FDF9C
|
|
strh r6, [r4, #0x16]
|
|
strh r5, [r4, #0x18]
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #6
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_027E1F4C
|
|
|
|
arm_func_start sub_027E1FCC
|
|
sub_027E1FCC: ; 0x027E1FCC
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
strh r0, [r4, #2]
|
|
strh r0, [r4, #4]
|
|
strh r0, [r4, #6]
|
|
strh r0, [r4, #8]
|
|
strh r0, [r4, #0xa]
|
|
mov r0, #5
|
|
strh r0, [r4, #0xc]
|
|
mov r3, #4
|
|
mov r5, r2
|
|
mov r0, r1
|
|
strh r3, [r4, #0xe]
|
|
add r1, r4, #0x10
|
|
mov r2, #6
|
|
bl sub_037FDF9C
|
|
strh r5, [r4, #0x16]
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #4
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027E1FCC
|
|
|
|
arm_func_start sub_027E2044
|
|
sub_027E2044: ; 0x027E2044
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r4, r0
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
strh r0, [r4, #2]
|
|
strh r0, [r4, #4]
|
|
strh r0, [r4, #6]
|
|
strh r0, [r4, #8]
|
|
mov r6, r2
|
|
strh r0, [r4, #0xa]
|
|
mov r2, #6
|
|
mov r0, r1
|
|
strh r2, [r4, #0xc]
|
|
mov r1, #5
|
|
strh r1, [r4, #0xe]
|
|
add r1, r4, #0x10
|
|
mov r5, r3
|
|
bl sub_037FDF9C
|
|
strh r6, [r4, #0x16]
|
|
strh r5, [r4, #0x18]
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #3
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_027E2044
|
|
|
|
arm_func_start sub_027E20C0
|
|
sub_027E20C0: ; 0x027E20C0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
mov ip, #0
|
|
strh ip, [r4]
|
|
strh ip, [r4, #2]
|
|
strh ip, [r4, #4]
|
|
strh ip, [r4, #6]
|
|
ldrh r0, [sp, #0x20]
|
|
strh ip, [r4, #8]
|
|
add r0, r0, #1
|
|
add r0, r0, r0, lsr #31
|
|
mov r5, r0, asr #1
|
|
mov r0, r2
|
|
strh ip, [r4, #0xa]
|
|
mov r2, #9
|
|
strh r2, [r4, #0xc]
|
|
add r2, r5, #0x17
|
|
strh r2, [r4, #0xe]
|
|
strh r1, [r4, #0x10]
|
|
add r1, r4, #0x12
|
|
mov r2, #0x20
|
|
mov r5, r3
|
|
bl sub_037FDF9C
|
|
ldrh r1, [sp, #0x10]
|
|
strh r5, [r4, #0x32]
|
|
ldrh r0, [sp, #0x14]
|
|
strh r1, [r4, #0x34]
|
|
ldrh r1, [sp, #0x18]
|
|
strh r0, [r4, #0x36]
|
|
ldrh r0, [sp, #0x1c]
|
|
strh r1, [r4, #0x38]
|
|
ldrh r2, [sp, #0x20]
|
|
strh r0, [r4, #0x3a]
|
|
ldr r0, [sp, #0x24]
|
|
strh r2, [r4, #0x3c]
|
|
add r1, r4, #0x3e
|
|
bl sub_037FDF9C
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #1
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027E20C0
|
|
|
|
arm_func_start sub_027E2180
|
|
sub_027E2180: ; 0x027E2180
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
mov r5, #0
|
|
strh r5, [r4]
|
|
strh r5, [r4, #2]
|
|
strh r5, [r4, #4]
|
|
strh r5, [r4, #6]
|
|
strh r5, [r4, #8]
|
|
strh r5, [r4, #0xa]
|
|
mov r0, #0xa
|
|
strh r0, [r4, #0xc]
|
|
mov r0, #0xc
|
|
strh r0, [r4, #0xe]
|
|
strh r5, [r4, #0x10]
|
|
strh r1, [r4, #0x12]
|
|
strh r2, [r4, #0x14]
|
|
ldr r0, [sp, #0x10]
|
|
strh r3, [r4, #0x16]
|
|
add r1, r4, #0x18
|
|
mov r2, #0x10
|
|
bl sub_037FDF9C
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #0x12
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027E2180
|
|
|
|
arm_func_start sub_027E2200
|
|
sub_027E2200: ; 0x027E2200
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
strh r0, [r4, #2]
|
|
strh r0, [r4, #4]
|
|
strh r0, [r4, #6]
|
|
strh r0, [r4, #8]
|
|
strh r0, [r4, #0xa]
|
|
mov r5, r1
|
|
mov r0, #0x100
|
|
strh r0, [r4, #0xc]
|
|
mov r1, #0x18
|
|
mov r0, r5
|
|
strh r1, [r4, #0xe]
|
|
add r1, r4, #0x10
|
|
mov r2, #0x30
|
|
bl sub_037FDF9C
|
|
mov r0, #0
|
|
strh r0, [r5, #2]
|
|
strh r0, [r5, #4]
|
|
strh r0, [r5, #8]
|
|
strh r0, [r5, #0xa]
|
|
strh r0, [r5, #0xc]
|
|
strh r0, [r5, #0x10]
|
|
strh r0, [r5, #0x12]
|
|
strh r0, [r5, #0x14]
|
|
strh r0, [r5, #0x16]
|
|
strh r0, [r5, #0x24]
|
|
strh r0, [r5, #0x26]
|
|
strh r0, [r5, #0x28]
|
|
strh r0, [r5, #0x2a]
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #2
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027E2200
|
|
|
|
arm_func_start sub_027E22AC
|
|
sub_027E22AC: ; 0x027E22AC
|
|
stmdb sp!, {r4, lr}
|
|
mov ip, #0
|
|
strh ip, [r0]
|
|
strh ip, [r0, #2]
|
|
strh ip, [r0, #4]
|
|
strh ip, [r0, #6]
|
|
strh ip, [r0, #8]
|
|
ldr r4, _027E2310 ; =0x00000101
|
|
strh ip, [r0, #0xa]
|
|
strh r4, [r0, #0xc]
|
|
mov r4, #4
|
|
strh r4, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
strh r2, [r0, #0x12]
|
|
str r3, [r0, #0x14]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
mov r1, #1
|
|
strh r1, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E2310: .word 0x00000101
|
|
arm_func_end sub_027E22AC
|
|
|
|
arm_func_start sub_027E2314
|
|
sub_027E2314: ; 0x027E2314
|
|
stmdb sp!, {r4, lr}
|
|
mov ip, #0
|
|
strh ip, [r0]
|
|
strh ip, [r0, #2]
|
|
strh ip, [r0, #4]
|
|
strh ip, [r0, #6]
|
|
strh ip, [r0, #8]
|
|
ldr r4, _027E23A8 ; =0x00000102
|
|
strh ip, [r0, #0xa]
|
|
strh r4, [r0, #0xc]
|
|
mov r4, #0xa
|
|
strh r4, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
strh r2, [r0, #0x12]
|
|
ldrh r2, [sp, #8]
|
|
strh r3, [r0, #0x14]
|
|
ldrh r1, [sp, #0xc]
|
|
strh r2, [r0, #0x16]
|
|
ldrh r2, [sp, #0x10]
|
|
strh r1, [r0, #0x18]
|
|
ldrh r1, [sp, #0x14]
|
|
strh r2, [r0, #0x1a]
|
|
ldrh r2, [sp, #0x18]
|
|
strh r1, [r0, #0x1c]
|
|
ldr r1, [sp, #0x1c]
|
|
strh r2, [r0, #0x1e]
|
|
str r1, [r0, #0x20]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
mov r1, #1
|
|
strh r1, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E23A8: .word 0x00000102
|
|
arm_func_end sub_027E2314
|
|
|
|
arm_func_start sub_027E23AC
|
|
sub_027E23AC: ; 0x027E23AC
|
|
stmdb sp!, {r4, lr}
|
|
mov r2, #0
|
|
strh r2, [r0]
|
|
strh r2, [r0, #2]
|
|
strh r2, [r0, #4]
|
|
strh r2, [r0, #6]
|
|
strh r2, [r0, #8]
|
|
strh r2, [r0, #0xa]
|
|
mov r2, #0x104
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027E23AC
|
|
|
|
arm_func_start sub_027E2404
|
|
sub_027E2404: ; 0x027E2404
|
|
stmdb sp!, {r4, lr}
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #6]
|
|
strh r1, [r0, #8]
|
|
strh r1, [r0, #0xa]
|
|
mov r1, #0x200
|
|
mov r2, #0x48
|
|
strh r1, [r0, #0xc]
|
|
strh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
mov r1, #1
|
|
strh r1, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027E2404
|
|
|
|
arm_func_start sub_027E2458
|
|
sub_027E2458: ; 0x027E2458
|
|
stmdb sp!, {r4, lr}
|
|
mov r3, #0
|
|
strh r3, [r0]
|
|
strh r3, [r0, #2]
|
|
strh r3, [r0, #4]
|
|
strh r3, [r0, #6]
|
|
strh r3, [r0, #8]
|
|
ldr r2, _027E24B0 ; =0x00000207
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E24B0: .word 0x00000207
|
|
arm_func_end sub_027E2458
|
|
|
|
arm_func_start sub_027E24B4
|
|
sub_027E24B4: ; 0x027E24B4
|
|
stmdb sp!, {r4, lr}
|
|
mov r3, #0
|
|
strh r3, [r0]
|
|
strh r3, [r0, #2]
|
|
strh r3, [r0, #4]
|
|
strh r3, [r0, #6]
|
|
strh r3, [r0, #8]
|
|
ldr r2, _027E250C ; =0x0000020B
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E250C: .word 0x0000020B
|
|
arm_func_end sub_027E24B4
|
|
|
|
arm_func_start sub_027E2510
|
|
sub_027E2510: ; 0x027E2510
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
strh r0, [r4, #2]
|
|
strh r0, [r4, #4]
|
|
strh r0, [r4, #6]
|
|
strh r0, [r4, #8]
|
|
ldr r2, _027E2580 ; =0x0000020D
|
|
strh r0, [r4, #0xa]
|
|
mov r0, r1
|
|
strh r2, [r4, #0xc]
|
|
mov r1, #0x10
|
|
strh r1, [r4, #0xe]
|
|
add r1, r4, #0x10
|
|
mov r2, #0x20
|
|
bl sub_037FDF9C
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #1
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E2580: .word 0x0000020D
|
|
arm_func_end sub_027E2510
|
|
|
|
arm_func_start sub_027E2584
|
|
sub_027E2584: ; 0x027E2584
|
|
stmdb sp!, {r4, lr}
|
|
mov r3, #0
|
|
strh r3, [r0]
|
|
strh r3, [r0, #2]
|
|
strh r3, [r0, #4]
|
|
strh r3, [r0, #6]
|
|
strh r3, [r0, #8]
|
|
ldr r2, _027E25DC ; =0x0000020E
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E25DC: .word 0x0000020E
|
|
arm_func_end sub_027E2584
|
|
|
|
arm_func_start sub_027E25E0
|
|
sub_027E25E0: ; 0x027E25E0
|
|
stmdb sp!, {r4, lr}
|
|
mov ip, #0
|
|
strh ip, [r0]
|
|
strh ip, [r0, #2]
|
|
strh ip, [r0, #4]
|
|
strh ip, [r0, #6]
|
|
strh ip, [r0, #8]
|
|
ldr r4, _027E2644 ; =0x00000211
|
|
strh ip, [r0, #0xa]
|
|
strh r4, [r0, #0xc]
|
|
mov r4, #3
|
|
strh r4, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
strh r2, [r0, #0x12]
|
|
strh r3, [r0, #0x14]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
mov r1, #1
|
|
strh r1, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E2644: .word 0x00000211
|
|
arm_func_end sub_027E25E0
|
|
|
|
arm_func_start sub_027E2648
|
|
sub_027E2648: ; 0x027E2648
|
|
stmdb sp!, {r4, lr}
|
|
mov r3, #0
|
|
strh r3, [r0]
|
|
strh r3, [r0, #2]
|
|
strh r3, [r0, #4]
|
|
strh r3, [r0, #6]
|
|
strh r3, [r0, #8]
|
|
ldr r2, _027E26A0 ; =0x00000212
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E26A0: .word 0x00000212
|
|
arm_func_end sub_027E2648
|
|
|
|
arm_func_start sub_027E26A4
|
|
sub_027E26A4: ; 0x027E26A4
|
|
stmdb sp!, {r4, lr}
|
|
mov r3, #0
|
|
strh r3, [r0]
|
|
strh r3, [r0, #2]
|
|
strh r3, [r0, #4]
|
|
strh r3, [r0, #6]
|
|
strh r3, [r0, #8]
|
|
ldr r2, _027E26FC ; =0x00000215
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E26FC: .word 0x00000215
|
|
arm_func_end sub_027E26A4
|
|
|
|
arm_func_start sub_027E2700
|
|
sub_027E2700: ; 0x027E2700
|
|
stmdb sp!, {r4, lr}
|
|
mov r3, #0
|
|
strh r3, [r0]
|
|
strh r3, [r0, #2]
|
|
strh r3, [r0, #4]
|
|
strh r3, [r0, #6]
|
|
strh r3, [r0, #8]
|
|
ldr r2, _027E2758 ; =0x00000216
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E2758: .word 0x00000216
|
|
arm_func_end sub_027E2700
|
|
|
|
arm_func_start sub_027E275C
|
|
sub_027E275C: ; 0x027E275C
|
|
stmdb sp!, {r4, lr}
|
|
mov r3, #0
|
|
strh r3, [r0]
|
|
strh r3, [r0, #2]
|
|
strh r3, [r0, #4]
|
|
strh r3, [r0, #6]
|
|
strh r3, [r0, #8]
|
|
ldr r2, _027E27B4 ; =0x00000242
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E27B4: .word 0x00000242
|
|
arm_func_end sub_027E275C
|
|
|
|
arm_func_start sub_027E27B8
|
|
sub_027E27B8: ; 0x027E27B8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
mov ip, #0
|
|
strh ip, [r4]
|
|
strh ip, [r4, #2]
|
|
strh ip, [r4, #4]
|
|
strh ip, [r4, #6]
|
|
strh ip, [r4, #8]
|
|
add r0, r1, #1
|
|
add r0, r0, r0, lsr #31
|
|
mov r3, r0, asr #1
|
|
mov r0, r2
|
|
ldr r5, _027E2838 ; =0x00000245
|
|
strh ip, [r4, #0xa]
|
|
strh r5, [r4, #0xc]
|
|
add r2, r3, #1
|
|
strh r2, [r4, #0xe]
|
|
strh r1, [r4, #0x10]
|
|
mov r2, r1
|
|
add r1, r4, #0x12
|
|
bl sub_037FDF9C
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #1
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E2838: .word 0x00000245
|
|
arm_func_end sub_027E27B8
|
|
|
|
arm_func_start sub_027E283C
|
|
sub_027E283C: ; 0x027E283C
|
|
ldr ip, _027E284C ; =sub_027E29A8
|
|
ldr r1, _027E2850 ; =0x00000281
|
|
mov r2, #4
|
|
bx ip
|
|
.align 2, 0
|
|
_027E284C: .word sub_027E29A8
|
|
_027E2850: .word 0x00000281
|
|
arm_func_end sub_027E283C
|
|
|
|
arm_func_start sub_027E2854
|
|
sub_027E2854: ; 0x027E2854
|
|
ldr ip, _027E2864 ; =sub_027E29A8
|
|
ldr r1, _027E2868 ; =0x00000283
|
|
mov r2, #3
|
|
bx ip
|
|
.align 2, 0
|
|
_027E2864: .word sub_027E29A8
|
|
_027E2868: .word 0x00000283
|
|
arm_func_end sub_027E2854
|
|
|
|
arm_func_start sub_027E286C
|
|
sub_027E286C: ; 0x027E286C
|
|
ldr ip, _027E287C ; =sub_027E29A8
|
|
mov r1, #0x284
|
|
mov r2, #2
|
|
bx ip
|
|
.align 2, 0
|
|
_027E287C: .word sub_027E29A8
|
|
arm_func_end sub_027E286C
|
|
|
|
arm_func_start sub_027E2880
|
|
sub_027E2880: ; 0x027E2880
|
|
ldr ip, _027E2890 ; =sub_027E29A8
|
|
ldr r1, _027E2894 ; =0x00000301
|
|
mov r2, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_027E2890: .word sub_027E29A8
|
|
_027E2894: .word 0x00000301
|
|
arm_func_end sub_027E2880
|
|
|
|
arm_func_start sub_027E2898
|
|
sub_027E2898: ; 0x027E2898
|
|
ldr ip, _027E28A8 ; =sub_027E29A8
|
|
ldr r1, _027E28AC ; =0x00000302
|
|
mov r2, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_027E28A8: .word sub_027E29A8
|
|
_027E28AC: .word 0x00000302
|
|
arm_func_end sub_027E2898
|
|
|
|
arm_func_start sub_027E28B0
|
|
sub_027E28B0: ; 0x027E28B0
|
|
ldr ip, _027E28C0 ; =sub_027E29A8
|
|
ldr r1, _027E28C4 ; =0x00000303
|
|
mov r2, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_027E28C0: .word sub_027E29A8
|
|
_027E28C4: .word 0x00000303
|
|
arm_func_end sub_027E28B0
|
|
|
|
arm_func_start sub_027E28C8
|
|
sub_027E28C8: ; 0x027E28C8
|
|
ldr ip, _027E28D8 ; =sub_027E29A8
|
|
mov r1, #0x304
|
|
mov r2, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_027E28D8: .word sub_027E29A8
|
|
arm_func_end sub_027E28C8
|
|
|
|
arm_func_start sub_027E28DC
|
|
sub_027E28DC: ; 0x027E28DC
|
|
ldr ip, _027E28EC ; =sub_027E29A8
|
|
ldr r1, _027E28F0 ; =0x00000305
|
|
mov r2, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_027E28EC: .word sub_027E29A8
|
|
_027E28F0: .word 0x00000305
|
|
arm_func_end sub_027E28DC
|
|
|
|
arm_func_start sub_027E28F4
|
|
sub_027E28F4: ; 0x027E28F4
|
|
ldr ip, _027E2904 ; =sub_027E29A8
|
|
ldr r1, _027E2908 ; =0x00000306
|
|
mov r2, #9
|
|
bx ip
|
|
.align 2, 0
|
|
_027E2904: .word sub_027E29A8
|
|
_027E2908: .word 0x00000306
|
|
arm_func_end sub_027E28F4
|
|
|
|
arm_func_start sub_027E290C
|
|
sub_027E290C: ; 0x027E290C
|
|
ldr ip, _027E291C ; =sub_027E29A8
|
|
ldr r1, _027E2920 ; =0x00000307
|
|
mov r2, #0x5c
|
|
bx ip
|
|
.align 2, 0
|
|
_027E291C: .word sub_027E29A8
|
|
_027E2920: .word 0x00000307
|
|
arm_func_end sub_027E290C
|
|
|
|
arm_func_start sub_027E2924
|
|
sub_027E2924: ; 0x027E2924
|
|
ldr ip, _027E2934 ; =sub_027E29A8
|
|
mov r1, #0x308
|
|
mov r2, #2
|
|
bx ip
|
|
.align 2, 0
|
|
_027E2934: .word sub_027E29A8
|
|
arm_func_end sub_027E2924
|
|
|
|
arm_func_start sub_027E2938
|
|
sub_027E2938: ; 0x027E2938
|
|
stmdb sp!, {r4, lr}
|
|
mov ip, #0
|
|
strh ip, [r0]
|
|
strh ip, [r0, #2]
|
|
strh ip, [r0, #4]
|
|
strh ip, [r0, #6]
|
|
strh ip, [r0, #8]
|
|
ldr r4, _027E29A4 ; =0x00000309
|
|
strh ip, [r0, #0xa]
|
|
strh r4, [r0, #0xc]
|
|
mov r4, #4
|
|
strh r4, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
strh r2, [r0, #0x12]
|
|
ldrh r1, [sp, #8]
|
|
strh r3, [r0, #0x14]
|
|
strh r1, [r0, #0x16]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
mov r1, #1
|
|
strh r1, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E29A4: .word 0x00000309
|
|
arm_func_end sub_027E2938
|
|
|
|
arm_func_start sub_027E29A8
|
|
sub_027E29A8: ; 0x027E29A8
|
|
stmdb sp!, {r4, lr}
|
|
mov r3, #0
|
|
strh r3, [r0]
|
|
strh r3, [r0, #2]
|
|
strh r3, [r0, #4]
|
|
strh r3, [r0, #6]
|
|
strh r3, [r0, #8]
|
|
strh r3, [r0, #0xa]
|
|
strh r1, [r0, #0xc]
|
|
strh r3, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r3, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r2, [r4, #0x12]
|
|
bl sub_027E01CC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027E29A8
|
|
|
|
arm_func_start sub_027E29F0
|
|
sub_027E29F0: ; 0x027E29F0
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r4, [r0, #4]
|
|
ldr r1, _027E2A8C ; =0x027F8878
|
|
str r4, [r1, #0x54c]
|
|
ldr r2, [r0, #8]
|
|
str r2, [r1, #0x550]
|
|
str r2, [r4]
|
|
ldr r1, [r0, #0xc]
|
|
str r1, [r4, #8]
|
|
ldr r0, [r0, #0x10]
|
|
bl sub_027E7E48
|
|
add r0, sp, #2
|
|
add r1, sp, #0
|
|
bl sub_027E8104
|
|
cmp r0, #0
|
|
bne _027E2A60
|
|
bl sub_03807380
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
ldrh r1, [sp, #2]
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [sp]
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E2A80
|
|
_027E2A60:
|
|
ldr r0, [r4]
|
|
mov r1, #2
|
|
strh r1, [r0]
|
|
bl sub_03807380
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E2A80:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E2A8C: .word 0x027F8878
|
|
arm_func_end sub_027E29F0
|
|
|
|
arm_func_start sub_027E2A90
|
|
sub_027E2A90: ; 0x027E2A90
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x210
|
|
ldr r0, _027E2E5C ; =0x027F8878
|
|
mov r4, #0
|
|
ldr r8, [r0, #0x550]
|
|
bl sub_037FDD00
|
|
ldr r1, [r8, #0xc]
|
|
mov r5, r0
|
|
cmp r1, #1
|
|
bne _027E2AEC
|
|
mov r0, r4
|
|
str r0, [r8, #0xc]
|
|
mov r4, #1
|
|
bl sub_027E5B8C
|
|
bl sub_027E0640
|
|
ldrh r0, [r8]
|
|
cmp r0, #0xa
|
|
moveq r0, #8
|
|
streqh r0, [r8]
|
|
beq _027E2AEC
|
|
cmp r0, #9
|
|
moveq r0, #7
|
|
streqh r0, [r8]
|
|
_027E2AEC:
|
|
ldrh r1, [r8]
|
|
add r0, r1, #0xf9
|
|
add r0, r0, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #1
|
|
bhi _027E2B20
|
|
add r0, r8, #0x100
|
|
cmp r1, #7
|
|
moveq sl, #1
|
|
ldrh sb, [r0, #0x82]
|
|
movne sl, #0
|
|
b _027E2B24
|
|
_027E2B20:
|
|
mov sb, #0
|
|
_027E2B24:
|
|
add r0, r8, #0x100
|
|
mov r1, #0
|
|
strh r1, [r0, #0x82]
|
|
strh r1, [r8, #0x86]
|
|
str r1, [r8, #0x14]
|
|
str r1, [r8, #0x10]
|
|
str r1, [r8, #0x1c]
|
|
mov r0, r5
|
|
strh r1, [r8, #0xc2]
|
|
bl sub_037FDD14
|
|
cmp r4, #0
|
|
beq _027E2B5C
|
|
ldr r0, _027E2E60 ; =0x0000FFFF
|
|
bl sub_027E781C
|
|
_027E2B5C:
|
|
cmp sl, #0
|
|
movne r0, #0
|
|
strneh r0, [r8, #0xf6]
|
|
cmp sb, #0
|
|
beq _027E2BB8
|
|
mov r7, #0
|
|
add r5, r8, #0x128
|
|
add r4, r8, #0x8a
|
|
mov r6, #1
|
|
mov fp, #6
|
|
_027E2B84:
|
|
tst sb, r6, lsl r7
|
|
beq _027E2BAC
|
|
cmp r7, #0
|
|
addeq r2, r4, #0x100
|
|
subne r0, r7, #1
|
|
mlane r2, r0, fp, r5
|
|
mov r1, r7, lsl #0x10
|
|
mov r0, sl
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_027E4A88
|
|
_027E2BAC:
|
|
add r7, r7, #1
|
|
cmp r7, #0x10
|
|
blt _027E2B84
|
|
_027E2BB8:
|
|
add r0, r8, #0x128
|
|
mov r1, #0
|
|
mov r2, #0x5a
|
|
bl sub_037FE070
|
|
add r0, sp, #0x10
|
|
bl sub_027E2924
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E2BE8
|
|
mov r0, #0x308
|
|
bl sub_027E2E70
|
|
b _027E2E50
|
|
_027E2BE8:
|
|
ldrh r4, [r0, #6]
|
|
add r0, sp, #0x10
|
|
bl sub_027E286C
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E2C0C
|
|
mov r0, #0x284
|
|
bl sub_027E2E70
|
|
b _027E2E50
|
|
_027E2C0C:
|
|
ldrh r1, [r0, #6]
|
|
cmp r4, #0x20
|
|
bgt _027E2C50
|
|
bge _027E2D24
|
|
cmp r4, #0
|
|
bgt _027E2C2C
|
|
beq _027E2D48
|
|
b _027E2E28
|
|
_027E2C2C:
|
|
cmp r4, #0x12
|
|
bgt _027E2E28
|
|
cmp r4, #0x10
|
|
blt _027E2E28
|
|
beq _027E2D68
|
|
cmp r4, #0x11
|
|
cmpne r4, #0x12
|
|
beq _027E2DC0
|
|
b _027E2E28
|
|
_027E2C50:
|
|
cmp r4, #0x30
|
|
bgt _027E2C60
|
|
beq _027E2C68
|
|
b _027E2E28
|
|
_027E2C60:
|
|
cmp r4, #0x40
|
|
bne _027E2E28
|
|
_027E2C68:
|
|
add r0, r1, #0xfe
|
|
add r0, r0, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #1
|
|
bhi _027E2CEC
|
|
add r0, r8, #0x8a
|
|
add r1, sp, #0xa
|
|
add r0, r0, #0x100
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
mov r6, #0
|
|
add r5, sp, #0xa
|
|
mov r4, #3
|
|
b _027E2CE0
|
|
_027E2CA4:
|
|
add r0, sp, #0x10
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_027E1FCC
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _027E2CD0
|
|
cmp r0, #7
|
|
cmpne r0, #0xc
|
|
beq _027E2CDC
|
|
b _027E2D24
|
|
_027E2CD0:
|
|
mov r0, #3
|
|
strh r0, [r8]
|
|
b _027E2D24
|
|
_027E2CDC:
|
|
add r6, r6, #1
|
|
_027E2CE0:
|
|
cmp r6, #2
|
|
blt _027E2CA4
|
|
b _027E2D24
|
|
_027E2CEC:
|
|
cmp r1, #1
|
|
bne _027E2D24
|
|
add r0, sp, #4
|
|
mov r1, #0xff
|
|
mov r2, #6
|
|
bl sub_037FE070
|
|
add r1, sp, #4
|
|
add r0, sp, #0x10
|
|
mov r2, #3
|
|
bl sub_027E1FCC
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, #0
|
|
moveq r0, #3
|
|
streqh r0, [r8]
|
|
_027E2D24:
|
|
add r0, sp, #0x10
|
|
mov r1, #1
|
|
bl sub_027E1D68
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E2D48
|
|
mov r0, #0
|
|
bl sub_027E2E70
|
|
b _027E2E50
|
|
_027E2D48:
|
|
add r0, sp, #0x10
|
|
bl sub_027E2898
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E2D68
|
|
ldr r0, _027E2E64 ; =0x00000302
|
|
bl sub_027E2E70
|
|
b _027E2E50
|
|
_027E2D68:
|
|
add r0, r8, #0x100
|
|
ldrh r0, [r0, #0xee]
|
|
cmp r0, #0
|
|
bne _027E2DA8
|
|
add r0, sp, #0x10
|
|
mov r1, #1
|
|
bl sub_027E2584
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E2D9C
|
|
ldr r0, _027E2E68 ; =0x0000020E
|
|
bl sub_027E2E70
|
|
b _027E2E50
|
|
_027E2D9C:
|
|
add r0, r8, #0x100
|
|
mov r1, #1
|
|
strh r1, [r0, #0xee]
|
|
_027E2DA8:
|
|
mov r0, #2
|
|
strh r0, [r8]
|
|
mov r0, #0
|
|
str r0, [r8, #0x198]
|
|
bl sub_027E076C
|
|
b _027E2E38
|
|
_027E2DC0:
|
|
cmp r1, #0
|
|
bne _027E2DFC
|
|
mov r0, #1
|
|
mov r1, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
mov r2, r1
|
|
mov r3, #0x14
|
|
bl sub_027E2938
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E2DFC
|
|
ldr r0, _027E2E6C ; =0x00000309
|
|
bl sub_027E2E70
|
|
b _027E2E50
|
|
_027E2DFC:
|
|
add r0, sp, #0x10
|
|
bl sub_027E2898
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E2E1C
|
|
ldr r0, _027E2E64 ; =0x00000302
|
|
bl sub_027E2E70
|
|
b _027E2E50
|
|
_027E2E1C:
|
|
mov r0, #2
|
|
strh r0, [r8]
|
|
b _027E2E38
|
|
_027E2E28:
|
|
mov r0, #0x308
|
|
mov r1, #0
|
|
bl sub_027E2E70
|
|
b _027E2E50
|
|
_027E2E38:
|
|
bl sub_03807380
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E2E50:
|
|
add sp, sp, #0x210
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E2E5C: .word 0x027F8878
|
|
_027E2E60: .word 0x0000FFFF
|
|
_027E2E64: .word 0x00000302
|
|
_027E2E68: .word 0x0000020E
|
|
_027E2E6C: .word 0x00000309
|
|
arm_func_end sub_027E2A90
|
|
|
|
arm_func_start sub_027E2E70
|
|
sub_027E2E70: ; 0x027E2E70
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
bl sub_03807380
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
strh r5, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027E2E70
|
|
|
|
arm_func_start sub_027E2EA0
|
|
sub_027E2EA0: ; 0x027E2EA0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r0, _027E2F4C ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
ldrh r0, [r4]
|
|
cmp r0, #2
|
|
beq _027E2ED8
|
|
bl sub_03807380
|
|
mov r1, #2
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
b _027E2F40
|
|
_027E2ED8:
|
|
add r0, sp, #0
|
|
bl sub_027E2880
|
|
ldrh r5, [r0, #4]
|
|
cmp r5, #0
|
|
beq _027E2F14
|
|
bl sub_03807380
|
|
mov r2, #2
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
add r1, r1, #0x300
|
|
strh r1, [r0, #4]
|
|
strh r5, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E2F40
|
|
_027E2F14:
|
|
mov r0, #1
|
|
strh r0, [r4]
|
|
bl sub_0380521C
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
bl sub_03807380
|
|
mov r1, #2
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E2F40:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E2F4C: .word 0x027F8878
|
|
arm_func_end sub_027E2EA0
|
|
|
|
arm_func_start sub_027E2F50
|
|
sub_027E2F50: ; 0x027E2F50
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r1, _027E3008 ; =0x027F8878
|
|
ldr r0, [r0, #4]
|
|
ldr r4, [r1, #0x550]
|
|
mov r2, #0x40
|
|
add r1, r4, #0xe8
|
|
bl sub_037FE12C
|
|
add r0, r4, #0x100
|
|
ldrh r1, [r0, #0x1a]
|
|
ldrh r0, [r0, #0xf4]
|
|
mov r2, #1
|
|
tst r0, r2, lsl r1
|
|
bne _027E2FA4
|
|
bl sub_03807380
|
|
mov r1, #7
|
|
strh r1, [r0]
|
|
mov r1, #6
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
b _027E2FFC
|
|
_027E2FA4:
|
|
ldrh r1, [r4, #0xf8]
|
|
add r0, sp, #0
|
|
bl sub_027E2648
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
beq _027E2FE4
|
|
bl sub_03807380
|
|
mov r1, #7
|
|
strh r1, [r0]
|
|
mov r2, #1
|
|
ldr r1, _027E300C ; =0x00000212
|
|
strh r2, [r0, #2]
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E2FFC
|
|
_027E2FE4:
|
|
bl sub_03807380
|
|
mov r1, #7
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E2FFC:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E3008: .word 0x027F8878
|
|
_027E300C: .word 0x00000212
|
|
arm_func_end sub_027E2F50
|
|
|
|
arm_func_start sub_027E3010
|
|
sub_027E3010: ; 0x027E3010
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #0x2b8
|
|
ldr r1, _027E3294 ; =0x027F8878
|
|
add r5, sp, #0xb8
|
|
ldr r4, [r1, #0x550]
|
|
ldrh r1, [r4]
|
|
cmp r1, #2
|
|
bne _027E303C
|
|
ldr r1, [r4, #0xc8]
|
|
tst r1, #1
|
|
beq _027E3060
|
|
_027E303C:
|
|
bl sub_03807380
|
|
mov r1, #8
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, #0
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E3288
|
|
_027E3060:
|
|
add r1, r4, #0x100
|
|
ldrh r2, [r1, #0x1a]
|
|
mov r3, #1
|
|
ldrh ip, [r1, #0xf6]
|
|
mov r2, r3, lsl r2
|
|
ldr r6, [r0, #4]
|
|
tst ip, r2, asr #1
|
|
bne _027E30A4
|
|
bl sub_03807380
|
|
mov r1, #8
|
|
strh r1, [r0]
|
|
mov r1, #6
|
|
strh r1, [r0, #2]
|
|
mov r1, #0
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E3288
|
|
_027E30A4:
|
|
strh r3, [r4, #0xe6]
|
|
mov r0, #0
|
|
strh r0, [r1, #0x88]
|
|
bl sub_037FDD00
|
|
add r1, r4, #0x100
|
|
mov r2, #0
|
|
strh r2, [r1, #0x82]
|
|
strh r2, [r4, #0x86]
|
|
bl sub_037FDD14
|
|
mov r1, r5
|
|
add r2, r4, #0x100
|
|
mov r3, #1
|
|
mov r0, #8
|
|
strh r3, [r2, #0xee]
|
|
bl sub_027E03D0
|
|
cmp r0, #0
|
|
beq _027E3288
|
|
mov r0, r5
|
|
bl sub_027E28B0
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E3108
|
|
ldr r0, _027E3298 ; =0x00000303
|
|
bl sub_027E329C
|
|
b _027E3288
|
|
_027E3108:
|
|
cmp r6, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
mov r0, r0, lsl #0x10
|
|
mov r6, r0, lsr #0x10
|
|
mov r0, r5
|
|
mov r1, r6
|
|
mov r2, #0
|
|
mov r3, #1
|
|
bl sub_027E1DBC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E3148
|
|
mov r0, #1
|
|
bl sub_027E329C
|
|
b _027E3288
|
|
_027E3148:
|
|
strh r6, [r4, #0xc6]
|
|
add r1, sp, #0x38
|
|
mov r0, #0
|
|
mov r2, #0x80
|
|
add r6, r4, #0xe8
|
|
bl sub_037FDF74
|
|
add r0, sp, #0x38
|
|
mov r1, r6
|
|
bl sub_027E030C
|
|
add r1, sp, #0x18
|
|
mov r0, #0
|
|
mov r2, #0x20
|
|
bl sub_037FDF74
|
|
ldr r1, [r6, #8]
|
|
mov r0, r5
|
|
strh r1, [sp, #0x18]
|
|
ldr r2, [r6, #8]
|
|
mov r3, #0
|
|
mov r2, r2, lsr #0x10
|
|
strh r2, [sp, #0x1a]
|
|
ldrh r5, [r6, #0xc]
|
|
mov r2, #2
|
|
strh r5, [sp, #0x1c]
|
|
strh r3, [sp, #0x1e]
|
|
str r2, [sp]
|
|
ldrh r3, [r6, #0x32]
|
|
mov r2, #3
|
|
str r3, [sp, #4]
|
|
str r2, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
ldrh r2, [r6, #4]
|
|
add r3, sp, #0x38
|
|
add r2, r2, #0x10
|
|
mov r2, r2, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
str r2, [sp, #0x10]
|
|
str r3, [sp, #0x14]
|
|
ldrh r3, [r6, #0x18]
|
|
mov r1, #0x20
|
|
add r2, sp, #0x18
|
|
bl sub_027E20C0
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E3204
|
|
mov r0, #9
|
|
bl sub_027E329C
|
|
b _027E3288
|
|
_027E3204:
|
|
ldrh r0, [r6, #0x14]
|
|
cmp r0, #0
|
|
ldrh r0, [r6, #0x34]
|
|
movne r1, #0x2a
|
|
moveq r1, #0
|
|
add r0, r0, r1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027E07A0
|
|
ldrh r0, [r6, #0x14]
|
|
cmp r0, #0
|
|
movne r1, #6
|
|
ldrh r0, [r6, #0x36]
|
|
moveq r1, #0
|
|
add r0, r0, r1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027E07F0
|
|
bl sub_03807380
|
|
mov r1, #7
|
|
strh r1, [r4]
|
|
mov r1, #8
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
strh r1, [r0, #8]
|
|
ldrh r1, [r4, #0x30]
|
|
strh r1, [r0, #0x2c]
|
|
ldrh r1, [r4, #0x32]
|
|
strh r1, [r0, #0x2e]
|
|
bl sub_03807334
|
|
mov r0, #1
|
|
strh r0, [r4, #0xc2]
|
|
_027E3288:
|
|
add sp, sp, #0x2b8
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E3294: .word 0x027F8878
|
|
_027E3298: .word 0x00000303
|
|
arm_func_end sub_027E3010
|
|
|
|
arm_func_start sub_027E329C
|
|
sub_027E329C: ; 0x027E329C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
bl sub_03807380
|
|
mov r1, #8
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
mov r1, #0
|
|
strh r1, [r0, #8]
|
|
strh r5, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027E329C
|
|
|
|
arm_func_start sub_027E32D8
|
|
sub_027E32D8: ; 0x027E32D8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
sub sp, sp, #0x208
|
|
ldr r0, _027E3494 ; =0x027F8878
|
|
ldr sl, [r0, #0x550]
|
|
ldrh r0, [sl]
|
|
cmp r0, #7
|
|
beq _027E3310
|
|
bl sub_03807380
|
|
mov r1, #9
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
b _027E3488
|
|
_027E3310:
|
|
mov r0, #0
|
|
strh r0, [sl, #0xf6]
|
|
mov r8, #1
|
|
_027E331C:
|
|
add r0, sl, #0x100
|
|
ldrh r0, [r0, #0x82]
|
|
mov r7, #1
|
|
tst r0, r7, lsl r8
|
|
beq _027E33EC
|
|
add r0, sl, #0x128
|
|
sub r1, r8, #1
|
|
mov r2, #6
|
|
mla r0, r1, r2, r0
|
|
add r1, sp, #0
|
|
bl sub_037FE12C
|
|
mov sb, #0
|
|
add r6, sp, #8
|
|
add r5, sp, #0
|
|
mov r4, #3
|
|
b _027E3388
|
|
_027E335C:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_027E1FCC
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _027E3390
|
|
cmp r0, #7
|
|
cmpne r0, #0xc
|
|
bne _027E3390
|
|
add sb, sb, #1
|
|
_027E3388:
|
|
cmp sb, #2
|
|
blt _027E335C
|
|
_027E3390:
|
|
bl sub_037FDD00
|
|
add r1, sl, #0x100
|
|
ldrh r2, [r1, #0x82]
|
|
tst r2, r7, lsl r8
|
|
beq _027E33E8
|
|
mvn r3, r7, lsl r8
|
|
and r2, r2, r3
|
|
strh r2, [r1, #0x82]
|
|
ldrh r2, [sl, #0x86]
|
|
add r1, sl, r8, lsl #3
|
|
and r2, r2, r3
|
|
strh r2, [sl, #0x86]
|
|
mov r2, #0
|
|
str r2, [r1, #0x738]
|
|
str r2, [r1, #0x73c]
|
|
bl sub_037FDD14
|
|
mov r0, r8, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
add r2, sp, #0
|
|
mov r0, #1
|
|
bl sub_027E4A88
|
|
b _027E33EC
|
|
_027E33E8:
|
|
bl sub_037FDD14
|
|
_027E33EC:
|
|
add r8, r8, #1
|
|
cmp r8, #0x10
|
|
blt _027E331C
|
|
add r0, sp, #8
|
|
mov r1, #1
|
|
bl sub_027E1D68
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #0
|
|
cmp r1, #0
|
|
beq _027E341C
|
|
bl sub_027E349C
|
|
b _027E3488
|
|
_027E341C:
|
|
strh r0, [sl, #0xc2]
|
|
mov r1, #3
|
|
strh r1, [sl]
|
|
add r0, sp, #8
|
|
bl sub_027E2898
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E3448
|
|
ldr r0, _027E3498 ; =0x00000302
|
|
bl sub_027E349C
|
|
b _027E3488
|
|
_027E3448:
|
|
mov r0, #2
|
|
strh r0, [sl]
|
|
mov r1, #0
|
|
str r1, [sl, #0x198]
|
|
add r0, sl, #0x100
|
|
strh r1, [r0, #0x96]
|
|
add r0, sl, #0x19c
|
|
mov r2, #0x50
|
|
bl sub_037FE070
|
|
bl sub_027E076C
|
|
bl sub_03807380
|
|
mov r1, #9
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E3488:
|
|
add sp, sp, #0x208
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E3494: .word 0x027F8878
|
|
_027E3498: .word 0x00000302
|
|
arm_func_end sub_027E32D8
|
|
|
|
arm_func_start sub_027E349C
|
|
sub_027E349C: ; 0x027E349C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
bl sub_03807380
|
|
mov r1, #9
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
strh r5, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027E349C
|
|
|
|
arm_func_start sub_027E34D0
|
|
sub_027E34D0: ; 0x027E34D0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x248
|
|
ldr r1, _027E3820 ; =0x027F8878
|
|
add r4, sp, #0x48
|
|
ldr r7, [r1, #0x550]
|
|
ldrh r1, [r7]
|
|
cmp r1, #2
|
|
cmpne r1, #3
|
|
cmpne r1, #5
|
|
beq _027E351C
|
|
bl sub_03807380
|
|
mov r1, #0xa
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, #4
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E3814
|
|
_027E351C:
|
|
ldr r1, [r0, #4]
|
|
add r2, r7, #0x100
|
|
str r1, [r7, #0x184]
|
|
ldrh r5, [r0, #2]
|
|
add r1, sp, #0x10
|
|
strh r5, [r2, #0x90]
|
|
ldrh r6, [r0, #8]
|
|
add r0, r0, #0xa
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
ldrh r1, [sp, #0x10]
|
|
ldr r0, _027E3824 ; =0x0000FFFF
|
|
cmp r1, r0
|
|
beq _027E3560
|
|
tst r1, #1
|
|
bicne r0, r1, #1
|
|
strneh r0, [sp, #0x10]
|
|
_027E3560:
|
|
cmp r5, #0
|
|
bne _027E358C
|
|
bl sub_03807380
|
|
mov r1, #0xa
|
|
strh r1, [r0]
|
|
mov r1, #6
|
|
strh r1, [r0, #2]
|
|
mov r1, #4
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E3814
|
|
_027E358C:
|
|
add r0, r7, #0x100
|
|
ldrh r0, [r0, #0xf4]
|
|
mov r1, #1
|
|
tst r0, r1, lsl r5
|
|
bne _027E35C4
|
|
bl sub_03807380
|
|
mov r1, #0xa
|
|
strh r1, [r0]
|
|
mov r1, #6
|
|
strh r1, [r0, #2]
|
|
mov r1, #4
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E3814
|
|
_027E35C4:
|
|
mov r0, #2
|
|
strh r0, [r7, #0xe6]
|
|
mov r0, r4
|
|
bl sub_027E2924
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E35F0
|
|
mov r0, #0x308
|
|
mov r2, #0
|
|
bl sub_027E3D74
|
|
b _027E3814
|
|
_027E35F0:
|
|
ldrh r0, [r0, #6]
|
|
cmp r0, #0x10
|
|
bne _027E366C
|
|
mov r1, r4
|
|
mov r0, #0xa
|
|
bl sub_027E03D0
|
|
cmp r0, #0
|
|
beq _027E3814
|
|
mov r0, r4
|
|
bl sub_027E28B0
|
|
ldrh r1, [r0, #4]
|
|
mov r2, #0
|
|
cmp r1, #0
|
|
beq _027E3634
|
|
ldr r0, _027E3828 ; =0x00000303
|
|
bl sub_027E3D74
|
|
b _027E3814
|
|
_027E3634:
|
|
mov r0, #3
|
|
mov r1, #1
|
|
strh r0, [r7]
|
|
mov r0, r4
|
|
mov r3, r1
|
|
bl sub_027E1DBC
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #1
|
|
cmp r1, #0
|
|
beq _027E3668
|
|
mov r2, #0
|
|
bl sub_027E3D74
|
|
b _027E3814
|
|
_027E3668:
|
|
strh r0, [r7, #0xc6]
|
|
_027E366C:
|
|
ldr r0, _027E3824 ; =0x0000FFFF
|
|
mov r3, #5
|
|
strh r3, [r7]
|
|
add r1, sp, #0x26
|
|
mov r2, #0x20
|
|
bl sub_037FDF74
|
|
add r0, sp, #0x17
|
|
mov r1, #0
|
|
mov r2, #0xf
|
|
strb r5, [sp, #0x16]
|
|
bl sub_037FE070
|
|
add r1, sp, #0x26
|
|
str r1, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
add r0, sp, #0x16
|
|
str r0, [sp, #8]
|
|
ldr r1, _027E382C ; =0x0000011E
|
|
add r2, sp, #0x10
|
|
str r6, [sp, #0xc]
|
|
mov r0, r4
|
|
mov r3, #0
|
|
bl sub_027E1E1C
|
|
mov r4, r0
|
|
ldrh r1, [r4, #4]
|
|
cmp r1, #0
|
|
beq _027E36E8
|
|
mov r0, #2
|
|
mov r2, #0
|
|
bl sub_027E3D74
|
|
b _027E3814
|
|
_027E36E8:
|
|
bl sub_03807380
|
|
ldrh r1, [r4, #8]
|
|
mov r6, r0
|
|
cmp r1, #0
|
|
bne _027E3720
|
|
mov r0, #0xa
|
|
strh r0, [r6]
|
|
mov r1, #0
|
|
strh r1, [r6, #2]
|
|
mov r0, #4
|
|
strh r0, [r6, #8]
|
|
strh r5, [r6, #0x10]
|
|
strh r1, [r6, #0x12]
|
|
b _027E380C
|
|
_027E3720:
|
|
ldr r1, [r7, #0x184]
|
|
mov r0, #0
|
|
add r1, r1, #0x40
|
|
mov r2, #0x80
|
|
bl sub_037FDF74
|
|
ldrh r2, [r4, #0xa]
|
|
ldr r1, [r7, #0x184]
|
|
add r0, r4, #0xa
|
|
mov r2, r2, lsl #1
|
|
bl sub_037FE12C
|
|
mov r0, #0xa
|
|
strh r0, [r6]
|
|
mov r0, #0
|
|
strh r0, [r6, #2]
|
|
mov r0, #5
|
|
strh r0, [r6, #8]
|
|
ldrh r0, [r4, #0x40]
|
|
strh r0, [r6, #0x10]
|
|
ldrh r0, [r4, #0xc]
|
|
and r0, r0, #0xff
|
|
bl sub_027E3830
|
|
mov r7, r0
|
|
bl sub_027E05D8
|
|
strh r0, [r6, #0x12]
|
|
mov r0, r7
|
|
bl sub_027E3844
|
|
ldrh r1, [r4, #0x14]
|
|
add r0, r4, #0xe
|
|
strh r1, [r6, #0x14]
|
|
add r1, r6, #0xa
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
add r0, r4, #0x16
|
|
add r1, r6, #0x16
|
|
mov r2, #0x20
|
|
bl sub_037FDF9C
|
|
ldrh r0, [r4, #0x46]
|
|
strh r0, [r6, #0x36]
|
|
cmp r0, #0x80
|
|
bls _027E37E4
|
|
mov r0, #0xa
|
|
strh r0, [r6]
|
|
mov r1, #0
|
|
strh r1, [r6, #2]
|
|
mov r0, #4
|
|
strh r0, [r6, #8]
|
|
strh r5, [r6, #0x10]
|
|
strh r1, [r6, #0x12]
|
|
b _027E380C
|
|
_027E37E4:
|
|
add r1, r6, #0x38
|
|
mov r0, #0
|
|
mov r2, #0x80
|
|
bl sub_037FDF74
|
|
ldrh r1, [r6, #0x36]
|
|
add r0, r4, #0x4a
|
|
add r2, r1, #1
|
|
add r1, r6, #0x38
|
|
bic r2, r2, #1
|
|
bl sub_037FDF9C
|
|
_027E380C:
|
|
mov r0, r6
|
|
bl sub_03807334
|
|
_027E3814:
|
|
add sp, sp, #0x248
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E3820: .word 0x027F8878
|
|
_027E3824: .word 0x0000FFFF
|
|
_027E3828: .word 0x00000303
|
|
_027E382C: .word 0x0000011E
|
|
arm_func_end sub_027E34D0
|
|
|
|
arm_func_start sub_027E3830
|
|
sub_027E3830: ; 0x027E3830
|
|
tst r0, #2
|
|
mov r0, r0, asr #2
|
|
addeq r0, r0, #0x19
|
|
and r0, r0, #0xff
|
|
bx lr
|
|
arm_func_end sub_027E3830
|
|
|
|
arm_func_start sub_027E3844
|
|
sub_027E3844: ; 0x027E3844
|
|
ldr r2, _027E385C ; =0x027FFF98
|
|
ldrh r1, [r2]
|
|
eor r0, r0, r1, lsl #1
|
|
eor r0, r0, r0, lsr #16
|
|
strh r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E385C: .word 0x027FFF98
|
|
arm_func_end sub_027E3844
|
|
|
|
arm_func_start sub_027E3860
|
|
sub_027E3860: ; 0x027E3860
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0xc8
|
|
sub sp, sp, #0x400
|
|
ldr r1, _027E3D60 ; =0x027F8878
|
|
mov sb, r0
|
|
ldr r8, [r1, #0x550]
|
|
ldrh r0, [r8]
|
|
cmp r0, #2
|
|
cmpne r0, #3
|
|
cmpne r0, #5
|
|
beq _027E38B0
|
|
bl sub_03807380
|
|
mov r1, #0x26
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, #4
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E3D50
|
|
_027E38B0:
|
|
ldr r0, [sb, #4]
|
|
add r1, sp, #0x18
|
|
str r0, [r8, #0x184]
|
|
ldrh sl, [sb, #2]
|
|
add r0, r8, #0x100
|
|
strh sl, [r0, #0x90]
|
|
ldrh r3, [sb, #0xa]
|
|
add r0, sb, #0xc
|
|
str r3, [sp, #0x10]
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
ldrh r5, [sb, #0x12]
|
|
ldrh fp, [sb, #0x36]
|
|
cmp r5, #2
|
|
beq _027E38F8
|
|
cmp r5, #3
|
|
beq _027E3904
|
|
b _027E3910
|
|
_027E38F8:
|
|
mov r6, #1
|
|
mov r5, #0
|
|
b _027E3914
|
|
_027E3904:
|
|
mov r6, #1
|
|
mov r5, r6
|
|
b _027E3914
|
|
_027E3910:
|
|
mov r6, #0
|
|
_027E3914:
|
|
add r1, sp, #0x4e
|
|
add r0, sb, #0x16
|
|
mov r2, #0x20
|
|
ldrh r4, [sb, #0x14]
|
|
bl sub_037FE12C
|
|
ldrh r1, [sp, #0x18]
|
|
ldr r0, _027E3D64 ; =0x0000FFFF
|
|
ldrh r7, [sb, #8]
|
|
cmp r1, r0
|
|
beq _027E3948
|
|
tst r1, #1
|
|
bicne r0, r1, #1
|
|
strneh r0, [sp, #0x18]
|
|
_027E3948:
|
|
add r0, r8, #0x100
|
|
ldrh r1, [r0, #0xf4]
|
|
mov r0, sl, lsl #0x11
|
|
ands sl, r1, r0, lsr #16
|
|
beq _027E398C
|
|
ldr r0, [r8, #0xc8]
|
|
tst r0, #1
|
|
cmpne r5, #1
|
|
bne _027E398C
|
|
ldr r0, [sb, #4]
|
|
cmp r0, #0
|
|
beq _027E398C
|
|
tst r0, #3
|
|
bne _027E398C
|
|
ldrh r0, [sb, #8]
|
|
cmp r0, #0x40
|
|
bhs _027E39B0
|
|
_027E398C:
|
|
bl sub_03807380
|
|
mov r1, #0x26
|
|
strh r1, [r0]
|
|
mov r1, #6
|
|
strh r1, [r0, #2]
|
|
mov r1, #4
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E3D50
|
|
_027E39B0:
|
|
mov r0, #2
|
|
strh r0, [r8, #0xe6]
|
|
add r0, sp, #0x70
|
|
bl sub_027E2924
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E39DC
|
|
mov r0, #0x308
|
|
mov r2, #1
|
|
bl sub_027E3D74
|
|
b _027E3D50
|
|
_027E39DC:
|
|
ldrh r0, [r0, #6]
|
|
cmp r0, #0x10
|
|
bne _027E3A5C
|
|
add r1, sp, #0x70
|
|
mov r0, #0x26
|
|
bl sub_027E03D0
|
|
cmp r0, #0
|
|
beq _027E3D50
|
|
add r0, sp, #0x70
|
|
bl sub_027E28B0
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E3A20
|
|
ldr r0, _027E3D68 ; =0x00000303
|
|
mov r2, #1
|
|
bl sub_027E3D74
|
|
b _027E3D50
|
|
_027E3A20:
|
|
mov r0, #3
|
|
mov r1, #1
|
|
strh r0, [r8]
|
|
add r0, sp, #0x70
|
|
mov r3, r1
|
|
mov r2, #0
|
|
bl sub_027E1DBC
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #1
|
|
cmp r1, #0
|
|
beq _027E3A58
|
|
mov r2, r0
|
|
bl sub_027E3D74
|
|
b _027E3D50
|
|
_027E3A58:
|
|
strh r0, [r8, #0xc6]
|
|
_027E3A5C:
|
|
add r0, r8, #0x100
|
|
ldrh r0, [r0, #0xee]
|
|
cmp r5, #0
|
|
bne _027E3AAC
|
|
cmp r0, #1
|
|
bne _027E3AE8
|
|
add r0, sp, #0x70
|
|
mov r1, #0
|
|
bl sub_027E2584
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E3A9C
|
|
ldr r0, _027E3D6C ; =0x0000020E
|
|
mov r2, #1
|
|
bl sub_027E3D74
|
|
b _027E3D50
|
|
_027E3A9C:
|
|
add r0, r8, #0x100
|
|
mov r1, #0
|
|
strh r1, [r0, #0xee]
|
|
b _027E3AE8
|
|
_027E3AAC:
|
|
cmp r0, #0
|
|
bne _027E3AE8
|
|
add r0, sp, #0x70
|
|
mov r1, #1
|
|
bl sub_027E2584
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E3ADC
|
|
ldr r0, _027E3D6C ; =0x0000020E
|
|
mov r2, #1
|
|
bl sub_027E3D74
|
|
b _027E3D50
|
|
_027E3ADC:
|
|
add r0, r8, #0x100
|
|
mov r1, #1
|
|
strh r1, [r0, #0xee]
|
|
_027E3AE8:
|
|
cmp r6, #1
|
|
bne _027E3B40
|
|
add r0, sp, #0x2e
|
|
mov r1, #0xff
|
|
mov r2, #0x20
|
|
bl sub_037FE070
|
|
cmp fp, #0x20
|
|
bhi _027E3B18
|
|
add r0, sp, #0x2e
|
|
mov r2, fp
|
|
mov r1, #0
|
|
bl sub_037FE070
|
|
_027E3B18:
|
|
add r1, sp, #0x2e
|
|
add r0, sp, #0x70
|
|
bl sub_027E2510
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E3B40
|
|
ldr r0, _027E3D70 ; =0x0000020D
|
|
mov r2, #1
|
|
bl sub_027E3D74
|
|
b _027E3D50
|
|
_027E3B40:
|
|
mov r6, #0
|
|
mov r3, #5
|
|
add r0, sp, #0x1e
|
|
mov r1, r6
|
|
mov r2, #0x10
|
|
strh r3, [r8]
|
|
bl sub_037FE070
|
|
mov r3, #1
|
|
add r1, sp, #0x1e
|
|
mov r2, r3
|
|
_027E3B68:
|
|
tst sl, r2, lsl r3
|
|
addne r0, r6, #1
|
|
movne r0, r0, lsl #0x10
|
|
strneb r3, [r1, r6]
|
|
movne r6, r0, lsr #0x10
|
|
add r0, r3, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov r3, r0, lsr #0x10
|
|
cmp r3, #0xf
|
|
blo _027E3B68
|
|
sub r0, r7, #0x40
|
|
mov r1, #0x42
|
|
bl sub_03806DD4
|
|
add r2, sp, #0x4e
|
|
stmia sp, {r2, r5}
|
|
add r1, sp, #0x1e
|
|
str r1, [sp, #8]
|
|
ldr r1, [sp, #0x10]
|
|
sub r5, r7, r0, lsl #1
|
|
str r1, [sp, #0xc]
|
|
add r2, sp, #0x18
|
|
add r0, sp, #0x70
|
|
mov r3, r4
|
|
add r1, r5, #0x5e
|
|
bl sub_027E1E1C
|
|
mov r5, r0
|
|
ldrh r1, [r5, #4]
|
|
cmp r1, #0
|
|
beq _027E3BEC
|
|
mov r0, #2
|
|
mov r2, #1
|
|
bl sub_027E3D74
|
|
b _027E3D50
|
|
_027E3BEC:
|
|
bl sub_03807380
|
|
ldrh r1, [r5, #8]
|
|
mov r6, r0
|
|
cmp r1, #0
|
|
bne _027E3C28
|
|
mov r0, #0x26
|
|
strh r0, [r6]
|
|
mov r1, #0
|
|
strh r1, [r6, #2]
|
|
mov r0, #4
|
|
strh r0, [r6, #8]
|
|
strh r1, [r6, #0xe]
|
|
mov r0, sl, asr #1
|
|
strh r0, [r6, #0xa]
|
|
b _027E3D48
|
|
_027E3C28:
|
|
ldr sb, [r8, #0x184]
|
|
mov r2, r7
|
|
mov r1, sb
|
|
mov r0, #0
|
|
add r8, r5, #0xa
|
|
bl sub_037FDF74
|
|
mov r7, #0
|
|
b _027E3D14
|
|
_027E3C48:
|
|
ldrh r1, [r8]
|
|
mov r0, r8
|
|
mov r1, r1, lsl #0x11
|
|
mov fp, r1, lsr #0x10
|
|
mov r1, sb
|
|
mov r2, fp
|
|
bl sub_037FE12C
|
|
cmp r4, #0
|
|
beq _027E3CD0
|
|
ldrh r2, [sb, #0xa]
|
|
cmp r2, #0
|
|
moveq r0, #0
|
|
beq _027E3CB4
|
|
cmp r2, #0x20
|
|
movhi r0, #0
|
|
bhi _027E3CB4
|
|
mov r1, #0
|
|
b _027E3CA8
|
|
_027E3C90:
|
|
add r0, sb, r1
|
|
ldrb r0, [r0, #0xc]
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
bne _027E3CB4
|
|
add r1, r1, #1
|
|
_027E3CA8:
|
|
cmp r1, r2
|
|
blt _027E3C90
|
|
mov r0, #0
|
|
_027E3CB4:
|
|
cmp r0, #0
|
|
bne _027E3CD0
|
|
add r0, sp, #0x4e
|
|
add r1, sb, #0xc
|
|
mov r2, #0x20
|
|
strh r4, [sb, #0xa]
|
|
bl sub_037FE12C
|
|
_027E3CD0:
|
|
add r0, r6, r7, lsl #2
|
|
str sb, [r0, #0x10]
|
|
ldrh r0, [r8, #2]
|
|
and r0, r0, #0xff
|
|
bl sub_027E3830
|
|
str r0, [sp, #0x14]
|
|
bl sub_027E05D8
|
|
add r1, r6, r7, lsl #1
|
|
strh r0, [r1, #0x50]
|
|
ldr r0, [sp, #0x14]
|
|
bl sub_027E3844
|
|
add sb, sb, fp
|
|
tst sb, #2
|
|
addne r0, sb, #2
|
|
add r8, r8, fp
|
|
bicne sb, r0, #3
|
|
add r7, r7, #1
|
|
_027E3D14:
|
|
ldrh r0, [r5, #8]
|
|
cmp r7, r0
|
|
blt _027E3C48
|
|
mov r0, #0x26
|
|
strh r0, [r6]
|
|
mov r0, #0
|
|
strh r0, [r6, #2]
|
|
mov r0, #5
|
|
strh r0, [r6, #8]
|
|
ldrh r1, [r5, #8]
|
|
mov r0, sl, asr #1
|
|
strh r1, [r6, #0xe]
|
|
strh r0, [r6, #0xa]
|
|
_027E3D48:
|
|
mov r0, r6
|
|
bl sub_03807334
|
|
_027E3D50:
|
|
add sp, sp, #0xc8
|
|
add sp, sp, #0x400
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E3D60: .word 0x027F8878
|
|
_027E3D64: .word 0x0000FFFF
|
|
_027E3D68: .word 0x00000303
|
|
_027E3D6C: .word 0x0000020E
|
|
_027E3D70: .word 0x0000020D
|
|
arm_func_end sub_027E3860
|
|
|
|
arm_func_start sub_027E3D74
|
|
sub_027E3D74: ; 0x027E3D74
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r4, r2
|
|
mov r6, r0
|
|
mov r5, r1
|
|
bl sub_03807380
|
|
cmp r4, #0
|
|
movne r1, #0x26
|
|
moveq r1, #0xa
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
mov r1, #4
|
|
strh r1, [r0, #8]
|
|
strh r6, [r0, #4]
|
|
strh r5, [r0, #6]
|
|
bl sub_03807334
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_027E3D74
|
|
|
|
arm_func_start sub_027E3DBC
|
|
sub_027E3DBC: ; 0x027E3DBC
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r0, _027E3E84 ; =0x027F8878
|
|
add r4, sp, #0
|
|
ldr r5, [r0, #0x550]
|
|
ldrh r0, [r5]
|
|
cmp r0, #5
|
|
beq _027E3DF8
|
|
bl sub_03807380
|
|
mov r1, #0xb
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
b _027E3E78
|
|
_027E3DF8:
|
|
mov r0, r4
|
|
bl sub_027E2898
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E3E18
|
|
ldr r0, _027E3E88 ; =0x00000302
|
|
bl sub_027E3E90
|
|
b _027E3E78
|
|
_027E3E18:
|
|
mov r0, #2
|
|
strh r0, [r5]
|
|
add r0, r5, #0x100
|
|
ldrh r0, [r0, #0xee]
|
|
cmp r0, #0
|
|
bne _027E3E60
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_027E2584
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E3E54
|
|
ldr r0, _027E3E8C ; =0x0000020E
|
|
bl sub_027E3E90
|
|
b _027E3E78
|
|
_027E3E54:
|
|
add r0, r5, #0x100
|
|
mov r1, #1
|
|
strh r1, [r0, #0xee]
|
|
_027E3E60:
|
|
bl sub_03807380
|
|
mov r1, #0xb
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E3E78:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E3E84: .word 0x027F8878
|
|
_027E3E88: .word 0x00000302
|
|
_027E3E8C: .word 0x0000020E
|
|
arm_func_end sub_027E3DBC
|
|
|
|
arm_func_start sub_027E3E90
|
|
sub_027E3E90: ; 0x027E3E90
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
bl sub_03807380
|
|
mov r1, #0xb
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
strh r5, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027E3E90
|
|
|
|
arm_func_start sub_027E3EC4
|
|
sub_027E3EC4: ; 0x027E3EC4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x250
|
|
ldr r1, _027E4454 ; =0x027F8878
|
|
add r4, sp, #0x50
|
|
ldr r7, [r1, #0x550]
|
|
ldr r5, [r1, #0x54c]
|
|
ldrh r1, [r7]
|
|
mov r6, r0
|
|
cmp r1, #2
|
|
bne _027E3EF8
|
|
ldr r0, [r7, #0xc8]
|
|
tst r0, #1
|
|
beq _027E3F1C
|
|
_027E3EF8:
|
|
bl sub_03807380
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, #6
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E4448
|
|
_027E3F1C:
|
|
ldr r0, [r6, #4]
|
|
add r1, r5, #0x10
|
|
mov r2, #0xc0
|
|
bl sub_037FE12C
|
|
ldrh r0, [r5, #0x4c]
|
|
cmp r0, #0x10
|
|
blo _027E3F68
|
|
ldrb r0, [r5, #0x5b]
|
|
tst r0, #1
|
|
bne _027E3F68
|
|
bl sub_03807380
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #0xb
|
|
strh r1, [r0, #2]
|
|
mov r1, #6
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E4448
|
|
_027E3F68:
|
|
ldrh r1, [r5, #0x46]
|
|
add r0, r7, #0x100
|
|
mov r2, #1
|
|
ldrh r0, [r0, #0xf4]
|
|
mov r1, r2, lsl r1
|
|
tst r1, r0
|
|
beq _027E3F90
|
|
rsb r0, r2, #0x2000
|
|
tst r0, r1, asr #1
|
|
bne _027E3FB0
|
|
_027E3F90:
|
|
bl sub_03807380
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #6
|
|
strh r1, [r0, #2]
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E4448
|
|
_027E3FB0:
|
|
bl sub_03807380
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #6
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
add r0, r7, #0x100
|
|
ldrh r1, [r0, #0xec]
|
|
cmp r1, #1
|
|
ldrh r1, [r5, #0x3e]
|
|
bne _027E3FF8
|
|
tst r1, #1
|
|
movne r1, #1
|
|
strneh r1, [r0, #0xec]
|
|
moveq r1, #2
|
|
b _027E4008
|
|
_027E3FF8:
|
|
tst r1, #2
|
|
movne r1, #2
|
|
strneh r1, [r0, #0xec]
|
|
moveq r1, #1
|
|
_027E4008:
|
|
streqh r1, [r0, #0xec]
|
|
ldrh r0, [r5, #0x3c]
|
|
tst r0, #0x20
|
|
movne r1, #1
|
|
add r0, r7, #0x100
|
|
moveq r1, #0
|
|
strh r1, [r0, #0xee]
|
|
ldrh r0, [r5, #0x4c]
|
|
mov r1, r4
|
|
cmp r0, #0
|
|
moveq r0, #3
|
|
movne r0, #2
|
|
strh r0, [r7, #0xe6]
|
|
mov r0, #0xc
|
|
bl sub_027E03D0
|
|
cmp r0, #0
|
|
beq _027E4448
|
|
mov r0, r4
|
|
mov r1, #0
|
|
bl sub_027E2700
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E4074
|
|
ldr r0, _027E4458 ; =0x00000216
|
|
mov r2, #0
|
|
bl sub_027E4468
|
|
b _027E4448
|
|
_027E4074:
|
|
ldrh r0, [r5, #0x4c]
|
|
cmp r0, #0x10
|
|
bhs _027E40D0
|
|
ldrh r1, [r5, #0x42]
|
|
cmp r1, #0
|
|
moveq r0, #1
|
|
beq _027E409C
|
|
ldr r0, _027E445C ; =0x00002710
|
|
bl sub_03806BC8
|
|
add r0, r0, #1
|
|
_027E409C:
|
|
mov r0, r0, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
cmp r1, #0xff
|
|
movhi r1, #0xff
|
|
mov r0, r4
|
|
bl sub_027E24B4
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E40D0
|
|
ldr r0, _027E4460 ; =0x0000020B
|
|
mov r2, #0
|
|
bl sub_027E4468
|
|
b _027E4448
|
|
_027E40D0:
|
|
mov r0, r4
|
|
bl sub_027E28B0
|
|
ldrh r1, [r0, #4]
|
|
mov r2, #0
|
|
cmp r1, #0
|
|
beq _027E40F4
|
|
ldr r0, _027E4464 ; =0x00000303
|
|
bl sub_027E4468
|
|
b _027E4448
|
|
_027E40F4:
|
|
mov r0, #3
|
|
strh r0, [r7]
|
|
ldr r0, [r6, #0x20]
|
|
mov r3, #1
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
mov r0, r0, lsl #0x10
|
|
mov r8, r0, lsr #0x10
|
|
mov r0, r4
|
|
mov r1, r8
|
|
bl sub_027E1DBC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E4140
|
|
mov r0, #1
|
|
mov r2, #0
|
|
bl sub_027E4468
|
|
b _027E4448
|
|
_027E4140:
|
|
strh r8, [r7, #0xc6]
|
|
add r1, sp, #0xc
|
|
add r0, r5, #0x10
|
|
mov r2, #0x40
|
|
bl sub_037FE12C
|
|
ldrh r0, [r7, #0xe6]
|
|
cmp r0, #2
|
|
bne _027E419C
|
|
mov r0, #0x20
|
|
strh r0, [sp, #0x16]
|
|
ldr r0, [r5, #0x54]
|
|
add r1, sp, #0x20
|
|
strh r0, [sp, #0x18]
|
|
ldr r2, [r5, #0x54]
|
|
add r0, r6, #8
|
|
mov r2, r2, lsr #0x10
|
|
strh r2, [sp, #0x1a]
|
|
ldrh ip, [r5, #0x58]
|
|
mov r3, #0
|
|
mov r2, #0x18
|
|
strh ip, [sp, #0x1c]
|
|
strh r3, [sp, #0x1e]
|
|
bl sub_037FE12C
|
|
_027E419C:
|
|
add r2, sp, #0xc
|
|
mov r0, r4
|
|
mov r1, #0x7d0
|
|
bl sub_027E1ED4
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
ldreqh r2, [r0, #6]
|
|
cmpeq r2, #0
|
|
beq _027E41D0
|
|
ldrh r2, [r0, #6]
|
|
mov r0, #3
|
|
bl sub_027E4468
|
|
b _027E4448
|
|
_027E41D0:
|
|
add r1, r7, #0x8a
|
|
add r0, r0, #8
|
|
add r1, r1, #0x100
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
add r0, r7, #0x8a
|
|
add r1, sp, #6
|
|
add r0, r0, #0x100
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
ldrh r2, [r6, #0x26]
|
|
add r1, sp, #6
|
|
mov r0, r4
|
|
mov r3, #0x7d0
|
|
bl sub_027E1F4C
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0xc
|
|
ldreqh r2, [r0, #6]
|
|
cmpeq r2, #0x13
|
|
bne _027E4240
|
|
bl sub_03807380
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
mov r1, #6
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E4448
|
|
_027E4240:
|
|
cmp r1, #0
|
|
ldreqh r2, [r0, #6]
|
|
cmpeq r2, #0
|
|
beq _027E4260
|
|
ldrh r2, [r0, #6]
|
|
mov r0, #4
|
|
bl sub_027E4468
|
|
b _027E4448
|
|
_027E4260:
|
|
add r0, r7, #0x8a
|
|
add r1, sp, #0
|
|
add r0, r0, #0x100
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
add r1, sp, #0
|
|
mov r0, r4
|
|
mov r2, #1
|
|
mov r3, #0x7d0
|
|
bl sub_027E2044
|
|
mov r4, r0
|
|
bl sub_037FDD00
|
|
ldrh r2, [r4, #4]
|
|
mov r6, r0
|
|
cmp r2, #0xc
|
|
ldreqh r1, [r4, #6]
|
|
cmpeq r1, #0x13
|
|
bne _027E42CC
|
|
bl sub_037FDD14
|
|
bl sub_03807380
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
mov r1, #6
|
|
strh r1, [r0, #8]
|
|
bl sub_03807334
|
|
b _027E4448
|
|
_027E42CC:
|
|
cmp r2, #0
|
|
ldreqh r0, [r4, #6]
|
|
cmpeq r0, #0
|
|
beq _027E42F8
|
|
mov r0, r6
|
|
bl sub_037FDD14
|
|
ldrh r1, [r4, #4]
|
|
ldrh r2, [r4, #6]
|
|
mov r0, #6
|
|
bl sub_027E4468
|
|
b _027E4448
|
|
_027E42F8:
|
|
ldrh r1, [r4, #8]
|
|
add r0, r7, #0x100
|
|
strh r1, [r0, #0x88]
|
|
ldrh r0, [r5, #0x58]
|
|
add r1, r7, #0x1f8
|
|
strh r0, [r7, #0xba]
|
|
mov r0, #1
|
|
mov r2, #0x10
|
|
bl sub_037FDF74
|
|
ldrh r0, [r5, #0x12]
|
|
and r0, r0, #0xff
|
|
tst r0, #2
|
|
mov r0, r0, asr #2
|
|
addeq r0, r0, #0x19
|
|
and r4, r0, #0xff
|
|
mov r0, r4
|
|
bl sub_027E05D8
|
|
strh r0, [r7, #0xbc]
|
|
mov r0, r4
|
|
bl sub_027E0564
|
|
bl sub_037FDD00
|
|
add r1, r7, #0x100
|
|
mov r2, #1
|
|
strh r2, [r1, #0x82]
|
|
strh r2, [r7, #0x86]
|
|
ldr r1, [r7, #0x7bc]
|
|
ldr r2, [r7, #0x7b8]
|
|
cmp r1, #0
|
|
mov r4, r0
|
|
cmpeq r2, #0
|
|
beq _027E4388
|
|
bl sub_037FD21C
|
|
orr r0, r0, #1
|
|
str r0, [r7, #0x738]
|
|
orr r0, r1, #0
|
|
str r0, [r7, #0x73c]
|
|
_027E4388:
|
|
mov r0, #8
|
|
strh r0, [r7]
|
|
ldrb r0, [r5, #0x5b]
|
|
tst r0, #4
|
|
movne r1, #0x2a
|
|
ldrh r0, [r5, #0x5c]
|
|
moveq r1, #0
|
|
add r0, r0, r1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027E07A0
|
|
ldrb r0, [r5, #0x5b]
|
|
tst r0, #4
|
|
movne r1, #6
|
|
ldrh r0, [r5, #0x5e]
|
|
moveq r1, #0
|
|
add r0, r0, r1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027E07F0
|
|
mov r0, r4
|
|
bl sub_037FDD14
|
|
mov r0, #1
|
|
strh r0, [r7, #0xc2]
|
|
bl sub_03807380
|
|
mov r4, r0
|
|
mov r0, #0xc
|
|
strh r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
mov r0, #7
|
|
strh r0, [r4, #8]
|
|
add r0, r7, #0x100
|
|
ldrh r2, [r0, #0x88]
|
|
add r1, r7, #0x8a
|
|
strh r2, [r4, #0xa]
|
|
add r0, r1, #0x100
|
|
add r1, r4, #0x10
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
ldrh r1, [r7, #0x30]
|
|
mov r0, r4
|
|
strh r1, [r4, #0x16]
|
|
ldrh r1, [r7, #0x32]
|
|
strh r1, [r4, #0x18]
|
|
bl sub_03807334
|
|
mov r0, r6
|
|
bl sub_037FDD14
|
|
_027E4448:
|
|
add sp, sp, #0x250
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E4454: .word 0x027F8878
|
|
_027E4458: .word 0x00000216
|
|
_027E445C: .word 0x00002710
|
|
_027E4460: .word 0x0000020B
|
|
_027E4464: .word 0x00000303
|
|
arm_func_end sub_027E3EC4
|
|
|
|
arm_func_start sub_027E4468
|
|
sub_027E4468: ; 0x027E4468
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r1
|
|
mov r4, r2
|
|
bl sub_03807380
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
strh r6, [r0, #4]
|
|
strh r5, [r0, #6]
|
|
strh r4, [r0, #0xe]
|
|
bl sub_03807334
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_027E4468
|
|
|
|
arm_func_start sub_027E44A4
|
|
sub_027E44A4: ; 0x027E44A4
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r1, [r0, #4]
|
|
add r2, sp, #0
|
|
mov r3, r1, lsl #0x10
|
|
mov r1, #0
|
|
mov r4, r3, lsr #0x10
|
|
bl sub_027E44FC
|
|
cmp r0, #1
|
|
bne _027E44F0
|
|
bl sub_03807380
|
|
mov r1, #0xd
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
strh r4, [r0, #8]
|
|
ldrh r1, [sp]
|
|
strh r1, [r0, #0xa]
|
|
bl sub_03807334
|
|
_027E44F0:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027E44A4
|
|
|
|
arm_func_start sub_027E44FC
|
|
sub_027E44FC: ; 0x027E44FC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x220
|
|
ldr r3, _027E4A80 ; =0x027F8878
|
|
ldr r4, [r0, #4]
|
|
movs sl, r1
|
|
ldrne r0, [r0, #8]
|
|
mov r1, r4, lsl #0x10
|
|
moveq r0, #0
|
|
mov r0, r0, lsl #0x10
|
|
mov fp, #0
|
|
ldr r7, [r3, #0x550]
|
|
mov r8, r1, lsr #0x10
|
|
ldrh r1, [r7]
|
|
mov r0, r0, lsr #0x10
|
|
cmp r1, #9
|
|
str r2, [sp]
|
|
mov r5, fp
|
|
str r0, [sp, #8]
|
|
cmpne r1, #7
|
|
bne _027E455C
|
|
ldr r0, [r7, #0xc]
|
|
cmp r0, #1
|
|
moveq r5, #1
|
|
b _027E4654
|
|
_027E455C:
|
|
cmp r1, #0xa
|
|
cmpne r1, #8
|
|
bne _027E4618
|
|
bl sub_037FDD00
|
|
add r1, r7, #0x100
|
|
ldrh r1, [r1, #0x82]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
bne _027E45C0
|
|
bl sub_037FDD14
|
|
cmp sl, #0
|
|
bne _027E45B8
|
|
bl sub_03807380
|
|
mov r1, #0xd
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #6]
|
|
strh r8, [r0, #8]
|
|
strh r1, [r0, #0xa]
|
|
bl sub_03807334
|
|
_027E45B8:
|
|
mov r0, #0
|
|
b _027E4A74
|
|
_027E45C0:
|
|
ldr r0, [r7, #0xc]
|
|
cmp r0, #1
|
|
bne _027E45F0
|
|
mov r0, #0
|
|
str r0, [r7, #0xc]
|
|
mov r5, #1
|
|
bl sub_027E5B8C
|
|
bl sub_027E0640
|
|
ldrh r0, [r7]
|
|
cmp r0, #0xa
|
|
moveq r0, #8
|
|
streqh r0, [r7]
|
|
_027E45F0:
|
|
add r0, r7, #0x100
|
|
mov r1, #0
|
|
strh r1, [r0, #0x82]
|
|
strh r1, [r7, #0x86]
|
|
str r1, [r7, #0x14]
|
|
str r1, [r7, #0x10]
|
|
mov r0, r4
|
|
str r1, [r7, #0x1c]
|
|
bl sub_037FDD14
|
|
b _027E4654
|
|
_027E4618:
|
|
cmp sl, #0
|
|
bne _027E464C
|
|
bl sub_03807380
|
|
mov r1, #0xd
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, fp
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #6]
|
|
strh r8, [r0, #8]
|
|
strh r1, [r0, #0xa]
|
|
bl sub_03807334
|
|
_027E464C:
|
|
mov r0, #0
|
|
b _027E4A74
|
|
_027E4654:
|
|
ldrh r0, [r7]
|
|
cmp r0, #0xa
|
|
cmpne r0, #8
|
|
bne _027E487C
|
|
add r0, r7, #0x8a
|
|
add r1, sp, #0x1a
|
|
add r0, r0, #0x100
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
mov sb, #0
|
|
add r6, sp, #0x1a
|
|
mov r4, #3
|
|
b _027E470C
|
|
_027E4688:
|
|
add r0, sp, #0x20
|
|
mov r1, r6
|
|
mov r2, r4
|
|
bl sub_027E1FCC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #7
|
|
bgt _027E46C4
|
|
bge _027E46CC
|
|
cmp r1, #1
|
|
bgt _027E46D4
|
|
cmp r1, #0
|
|
blt _027E46D4
|
|
cmpne r1, #1
|
|
beq _027E4714
|
|
b _027E46D4
|
|
_027E46C4:
|
|
cmp r1, #0xc
|
|
bne _027E46D4
|
|
_027E46CC:
|
|
add sb, sb, #1
|
|
b _027E470C
|
|
_027E46D4:
|
|
cmp sl, #0
|
|
mov r2, r8
|
|
mov r0, #5
|
|
mov r3, #0
|
|
beq _027E46F0
|
|
bl sub_027E4B90
|
|
b _027E46F4
|
|
_027E46F0:
|
|
bl sub_027E4B4C
|
|
_027E46F4:
|
|
cmp r5, #0
|
|
beq _027E4704
|
|
mov r0, #1
|
|
bl sub_027E781C
|
|
_027E4704:
|
|
mov r0, #0
|
|
b _027E4A74
|
|
_027E470C:
|
|
cmp sb, #2
|
|
blt _027E4688
|
|
_027E4714:
|
|
mov r0, #0
|
|
strh r0, [r7, #0xc2]
|
|
mov r0, #3
|
|
mov fp, #1
|
|
strh r0, [r7]
|
|
add r0, sp, #0x20
|
|
mov r1, fp
|
|
bl sub_027E1D68
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E4778
|
|
cmp sl, #0
|
|
mov r2, r8
|
|
mov r0, #0
|
|
mov r3, fp
|
|
beq _027E475C
|
|
bl sub_027E4B90
|
|
b _027E4760
|
|
_027E475C:
|
|
bl sub_027E4B4C
|
|
_027E4760:
|
|
cmp r5, #0
|
|
beq _027E4770
|
|
mov r0, #1
|
|
bl sub_027E781C
|
|
_027E4770:
|
|
mov r0, #0
|
|
b _027E4A74
|
|
_027E4778:
|
|
add r0, sp, #0x20
|
|
bl sub_027E2898
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E47C8
|
|
ldr r0, _027E4A84 ; =0x00000302
|
|
cmp sl, #0
|
|
mov r2, r8
|
|
beq _027E47A8
|
|
mov r3, fp
|
|
bl sub_027E4B90
|
|
b _027E47B0
|
|
_027E47A8:
|
|
mov r3, fp
|
|
bl sub_027E4B4C
|
|
_027E47B0:
|
|
cmp r5, #0
|
|
beq _027E47C0
|
|
mov r0, #1
|
|
bl sub_027E781C
|
|
_027E47C0:
|
|
mov r0, #0
|
|
b _027E4A74
|
|
_027E47C8:
|
|
mov r0, #2
|
|
strh r0, [r7]
|
|
mov r1, #0
|
|
str r1, [r7, #0x198]
|
|
add r3, r7, #0x100
|
|
add r0, r7, #0x19c
|
|
mov r2, #0x50
|
|
strh r1, [r3, #0x96]
|
|
bl sub_037FE070
|
|
bl sub_027E076C
|
|
cmp sl, #1
|
|
bne _027E4858
|
|
bl sub_03807380
|
|
mov r4, r0
|
|
mov r0, #0xc
|
|
strh r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
mov r0, #9
|
|
strh r0, [r4, #8]
|
|
ldr r0, [sp, #8]
|
|
mov r2, #6
|
|
strh r0, [r4, #0xc]
|
|
add r0, r7, #0x100
|
|
ldrh r1, [r0, #0x88]
|
|
add r0, sp, #0x1a
|
|
strh r1, [r4, #0xa]
|
|
add r1, r4, #0x10
|
|
bl sub_037FE12C
|
|
ldrh r1, [r7, #0x30]
|
|
mov r0, r4
|
|
strh r1, [r4, #0x16]
|
|
ldrh r1, [r7, #0x32]
|
|
strh r1, [r4, #0x18]
|
|
bl sub_03807334
|
|
b _027E4868
|
|
_027E4858:
|
|
mov r0, #0
|
|
add r2, sp, #0x1a
|
|
mov r1, r0
|
|
bl sub_027E4A88
|
|
_027E4868:
|
|
cmp r5, #0
|
|
beq _027E4A64
|
|
mov r0, #1
|
|
bl sub_027E781C
|
|
b _027E4A64
|
|
_027E487C:
|
|
mov r6, #1
|
|
b _027E4A5C
|
|
_027E4884:
|
|
add r0, r7, #0x100
|
|
ldrh r0, [r0, #0x82]
|
|
mov r1, #1
|
|
mov sb, r1, lsl r6
|
|
and r0, r0, r8
|
|
tst sb, r0
|
|
beq _027E4A58
|
|
sub r1, r6, #1
|
|
mov r2, #6
|
|
mul r0, r1, r2
|
|
str r0, [sp, #0x10]
|
|
add r0, r7, #0x128
|
|
str r0, [sp, #0xc]
|
|
mov r0, r6, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
str r0, [sp, #4]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r0, [sp, #0x10]
|
|
add r0, r1, r0
|
|
add r1, sp, #0x14
|
|
bl sub_037FE12C
|
|
mov r4, #0
|
|
b _027E4948
|
|
_027E48E0:
|
|
add r0, sp, #0x20
|
|
add r1, sp, #0x14
|
|
mov r2, #3
|
|
bl sub_027E1FCC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E4950
|
|
cmp r1, #7
|
|
cmpne r1, #0xc
|
|
bne _027E4910
|
|
add r4, r4, #1
|
|
b _027E4948
|
|
_027E4910:
|
|
cmp sl, #0
|
|
mov r2, r8
|
|
mov r0, #5
|
|
mov r3, fp
|
|
beq _027E492C
|
|
bl sub_027E4B90
|
|
b _027E4930
|
|
_027E492C:
|
|
bl sub_027E4B4C
|
|
_027E4930:
|
|
cmp r5, #0
|
|
beq _027E4940
|
|
mov r0, #1
|
|
bl sub_027E781C
|
|
_027E4940:
|
|
mov r0, #0
|
|
b _027E4A74
|
|
_027E4948:
|
|
cmp r4, #2
|
|
blt _027E48E0
|
|
_027E4950:
|
|
bl sub_037FDD00
|
|
mov r4, r0
|
|
add r1, r7, #0x100
|
|
ldrh r3, [r1, #0x82]
|
|
tst r3, sb
|
|
beq _027E4A54
|
|
ldr r2, [sp, #0xc]
|
|
ldr r0, [sp, #0x10]
|
|
mov ip, #1
|
|
add r0, r2, r0
|
|
ldr r2, [sp, #4]
|
|
orr r2, fp, ip, lsl r2
|
|
mov r2, r2, lsl #0x10
|
|
mov fp, r2, lsr #0x10
|
|
mvn r2, sb
|
|
and r3, r3, r2
|
|
strh r3, [r1, #0x82]
|
|
ldrh r3, [r7, #0x86]
|
|
mov r1, #0
|
|
and r2, r3, r2
|
|
strh r2, [r7, #0x86]
|
|
ldr r2, [sp, #4]
|
|
add r2, r7, r2, lsl #3
|
|
str r1, [r2, #0x738]
|
|
str r1, [r2, #0x73c]
|
|
mov r2, #6
|
|
bl sub_037FE070
|
|
mov r0, r4
|
|
bl sub_037FDD14
|
|
cmp sl, #1
|
|
bne _027E4A28
|
|
bl sub_03807380
|
|
mov r4, r0
|
|
mov r0, #8
|
|
strh r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
mov r0, #9
|
|
strh r0, [r4, #8]
|
|
ldr r0, [sp, #8]
|
|
add r1, r4, #0xa
|
|
strh r0, [r4, #0x12]
|
|
ldr r0, [sp, #4]
|
|
mov r2, #6
|
|
strh r0, [r4, #0x10]
|
|
add r0, sp, #0x14
|
|
bl sub_037FE12C
|
|
ldrh r1, [r7, #0x30]
|
|
mov r0, r4
|
|
strh r1, [r4, #0x2c]
|
|
ldrh r1, [r7, #0x32]
|
|
strh r1, [r4, #0x2e]
|
|
bl sub_03807334
|
|
b _027E4A3C
|
|
_027E4A28:
|
|
mov r0, r6, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
add r2, sp, #0x14
|
|
mov r0, #1
|
|
bl sub_027E4A88
|
|
_027E4A3C:
|
|
cmp r5, #0
|
|
beq _027E4A58
|
|
mov r0, sb, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027E781C
|
|
b _027E4A58
|
|
_027E4A54:
|
|
bl sub_037FDD14
|
|
_027E4A58:
|
|
add r6, r6, #1
|
|
_027E4A5C:
|
|
cmp r6, #0x10
|
|
blt _027E4884
|
|
_027E4A64:
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
strneh fp, [r0]
|
|
mov r0, #1
|
|
_027E4A74:
|
|
add sp, sp, #0x220
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E4A80: .word 0x027F8878
|
|
_027E4A84: .word 0x00000302
|
|
arm_func_end sub_027E44FC
|
|
|
|
arm_func_start sub_027E4A88
|
|
sub_027E4A88: ; 0x027E4A88
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r3, _027E4B44 ; =0x027F8878
|
|
mov r8, r0
|
|
ldr r5, [r3, #0x550]
|
|
mov r7, r1
|
|
mov r6, r2
|
|
bl sub_03807380
|
|
mov r4, r0
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
cmp r8, #0
|
|
mov r1, #0x1a
|
|
mov r2, #6
|
|
beq _027E4AF8
|
|
mov r0, #8
|
|
strh r0, [r4]
|
|
strh r1, [r4, #8]
|
|
ldr r0, _027E4B48 ; =0x0000F001
|
|
add r1, r4, #0xa
|
|
strh r0, [r4, #0x12]
|
|
strh r7, [r4, #0x10]
|
|
mov r0, r6
|
|
bl sub_037FE12C
|
|
ldrh r0, [r5, #0x30]
|
|
strh r0, [r4, #0x2c]
|
|
ldrh r0, [r5, #0x32]
|
|
strh r0, [r4, #0x2e]
|
|
b _027E4B34
|
|
_027E4AF8:
|
|
mov r0, #0xc
|
|
strh r0, [r4]
|
|
ldr r0, _027E4B48 ; =0x0000F001
|
|
strh r1, [r4, #8]
|
|
strh r0, [r4, #0xc]
|
|
add r0, r5, #0x100
|
|
ldrh r1, [r0, #0x88]
|
|
mov r0, r6
|
|
strh r1, [r4, #0xa]
|
|
add r1, r4, #0x10
|
|
bl sub_037FE12C
|
|
ldrh r0, [r5, #0x30]
|
|
strh r0, [r4, #0x16]
|
|
ldrh r0, [r5, #0x32]
|
|
strh r0, [r4, #0x18]
|
|
_027E4B34:
|
|
mov r0, r4
|
|
bl sub_03807334
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E4B44: .word 0x027F8878
|
|
_027E4B48: .word 0x0000F001
|
|
arm_func_end sub_027E4A88
|
|
|
|
arm_func_start sub_027E4B4C
|
|
sub_027E4B4C: ; 0x027E4B4C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl sub_03807380
|
|
mov r1, #0xd
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
strh r7, [r0, #4]
|
|
strh r6, [r0, #6]
|
|
strh r5, [r0, #8]
|
|
strh r4, [r0, #0xa]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_027E4B4C
|
|
|
|
arm_func_start sub_027E4B90
|
|
sub_027E4B90: ; 0x027E4B90
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl sub_03807380
|
|
mov r1, #0x25
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
strh r7, [r0, #4]
|
|
strh r6, [r0, #6]
|
|
strh r5, [r0, #8]
|
|
strh r4, [r0, #0xa]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_027E4B90
|
|
|
|
arm_func_start sub_027E4BD4
|
|
sub_027E4BD4: ; 0x027E4BD4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x204
|
|
ldr r1, _027E4F5C ; =0x027F8878
|
|
mov sl, r0
|
|
ldr r8, [r1, #0x550]
|
|
ldr fp, [sl, #4]
|
|
ldrh r1, [r8, #0x9c]
|
|
ldr r4, [sl, #8]
|
|
ldr r5, [sl, #0xc]
|
|
ldr r6, [sl, #0x10]
|
|
ldr r0, _027E4F60 ; =0x027F7878
|
|
cmp r1, #0
|
|
mov r7, #0
|
|
bne _027E4C58
|
|
ldrh r1, [r8, #0x3c]
|
|
add r1, r1, #0x1f
|
|
bic r1, r1, #0x1f
|
|
cmp r6, r1
|
|
add r1, r8, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
movlo r7, #6
|
|
cmp r1, #0
|
|
ldrneh r1, [r8, #0x3e]
|
|
addne r1, r1, #0x51
|
|
bne _027E4C4C
|
|
ldrh r2, [r8, #0x3e]
|
|
ldrh r1, [r8, #0xf8]
|
|
add r2, r2, #0xc
|
|
mul r1, r2, r1
|
|
add r1, r1, #0x29
|
|
_027E4C4C:
|
|
bic r1, r1, #0x1f
|
|
cmp r4, r1
|
|
movlo r7, #6
|
|
_027E4C58:
|
|
ldrh r1, [r8, #0xe6]
|
|
cmp r1, #2
|
|
bne _027E4C88
|
|
add r0, r0, #0x1000
|
|
ldr r1, [r0, #0x54c]
|
|
add r0, r8, #0x100
|
|
ldrh r1, [r1, #0x46]
|
|
ldrh r3, [r0, #0xf6]
|
|
mov r2, #1
|
|
mov r0, r2, lsl r1
|
|
tst r3, r0, asr #1
|
|
moveq r7, #6
|
|
_027E4C88:
|
|
cmp r7, #0
|
|
beq _027E4CB0
|
|
bl sub_03807380
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
strh r7, [r0, #2]
|
|
mov r1, #0xa
|
|
strh r1, [r0, #4]
|
|
bl sub_03807334
|
|
b _027E4F50
|
|
_027E4CB0:
|
|
ldr r0, [r8, #0xc]
|
|
mov r1, #0
|
|
cmp r0, #0
|
|
strne r1, [r8, #0xc]
|
|
movne r1, #1
|
|
cmp r1, #0
|
|
beq _027E4CD4
|
|
ldr r0, _027E4F64 ; =0x0000FFFF
|
|
bl sub_027E781C
|
|
_027E4CD4:
|
|
bl sub_027E6370
|
|
bl sub_037FDD00
|
|
str r0, [sp]
|
|
add r0, sl, #0x14
|
|
mov r1, #0
|
|
bl sub_027E841C
|
|
ldr r0, _027E4F5C ; =0x027F8878
|
|
ldr r7, [sl, #0x30]
|
|
ldr sb, [r0, #0x550]
|
|
ldrh r0, [sb]
|
|
cmp r0, #9
|
|
cmpne r0, #0xa
|
|
beq _027E4DC8
|
|
bl sub_037FDD00
|
|
tst r7, #4
|
|
ldrneh r2, [sl, #0x38]
|
|
add r1, sb, #0x700
|
|
ldreqh r2, [sb, #0x5c]
|
|
cmp r2, #0
|
|
moveq r2, #0x10
|
|
tst r7, #1
|
|
ldrneh r3, [sl, #0x34]
|
|
ldreqh r3, [sb, #0x58]
|
|
cmp r3, #0
|
|
moveq r3, #0x10
|
|
cmp r3, r2
|
|
movhi r3, r2
|
|
tst r7, #2
|
|
ldrneh ip, [sl, #0x36]
|
|
ldreqh ip, [sb, #0x5a]
|
|
strh r2, [r1, #0xc4]
|
|
cmp ip, #0
|
|
moveq ip, #0x10
|
|
cmp ip, r2
|
|
strh r3, [r1, #0xc0]
|
|
movhi ip, r2
|
|
strh ip, [r1, #0xc2]
|
|
ldrsh r1, [sb, #0x62]
|
|
cmp r1, r2
|
|
strgth r2, [sb, #0x62]
|
|
tst r7, #0x200
|
|
ldrneh r2, [sl, #0x3a]
|
|
add r1, sb, #0x700
|
|
ldreqh r2, [sb, #0x98]
|
|
tst r7, #0x400
|
|
strh r2, [r1, #0xca]
|
|
ldrneb r2, [sl, #0x3c]
|
|
add r1, sb, #0x700
|
|
ldreqh r2, [sb, #0x92]
|
|
tst r7, #0x800
|
|
strh r2, [r1, #0xc6]
|
|
ldrneb r2, [sl, #0x3d]
|
|
add r1, sb, #0x700
|
|
ldreqh r2, [sb, #0x94]
|
|
tst r7, #0x1000
|
|
strh r2, [r1, #0xc8]
|
|
ldrneb r2, [sl, #0x3e]
|
|
add r1, sb, #0x700
|
|
ldreqh r2, [sb, #0x9a]
|
|
strh r2, [r1, #0xcc]
|
|
bl sub_037FDD14
|
|
_027E4DC8:
|
|
ldrh r0, [r8]
|
|
add r0, r0, #0xf9
|
|
add r0, r0, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #1
|
|
bhi _027E4F28
|
|
mov r2, #0
|
|
strh r2, [r8, #0x84]
|
|
strh r2, [r8, #0x5e]
|
|
mov r1, #1
|
|
strh r1, [r8, #0x60]
|
|
strh r2, [r8, #0x88]
|
|
strh r2, [r8, #0x9e]
|
|
mov r0, #0x3c
|
|
strh r0, [r8, #0xa0]
|
|
str r2, [r8, #0x734]
|
|
strh r2, [r8, #0x8a]
|
|
strh r2, [r8, #0x8c]
|
|
strh r2, [r8, #0x8e]
|
|
strh r2, [r8, #0x90]
|
|
strh r2, [r8, #0x66]
|
|
str fp, [r8, #0x74]
|
|
strh r4, [r8, #0x72]
|
|
add r0, fp, r4
|
|
str r0, [r8, #0x78]
|
|
strh r2, [r8, #0x70]
|
|
str r5, [r8, #0x7c]
|
|
strh r6, [r8, #0x80]
|
|
strh r2, [r8, #0x62]
|
|
strh r2, [r8, #0x64]
|
|
strh r2, [r8, #0x68]
|
|
strh r2, [r8, #0x6a]
|
|
rsb r0, r1, #0x10000
|
|
strh r0, [r8, #0xbe]
|
|
strh r1, [r8, #0xc0]
|
|
bl sub_037FD21C
|
|
orr r1, r1, #0
|
|
orr r2, r0, #1
|
|
mov r3, #0
|
|
_027E4E68:
|
|
add r0, r8, r3, lsl #3
|
|
str r2, [r0, #0x738]
|
|
add r3, r3, #1
|
|
str r1, [r0, #0x73c]
|
|
cmp r3, #0x10
|
|
blt _027E4E68
|
|
bl sub_027E06A0
|
|
mov r0, #0
|
|
strh r0, [r8, #0xce]
|
|
bl sub_027E5BA0
|
|
ldrh r0, [r8]
|
|
cmp r0, #8
|
|
moveq r0, #0xa
|
|
streqh r0, [r8]
|
|
beq _027E4EB0
|
|
cmp r0, #7
|
|
moveq r0, #9
|
|
streqh r0, [r8]
|
|
_027E4EB0:
|
|
bl sub_03807380
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xa
|
|
strh r1, [r0, #4]
|
|
bl sub_03807334
|
|
mov r1, #1
|
|
ldr r0, [sp]
|
|
str r1, [r8, #0xc]
|
|
bl sub_037FDD14
|
|
add r0, sp, #4
|
|
mov r1, #1
|
|
bl sub_027E2700
|
|
mov r4, r0
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _027E4F50
|
|
bl sub_03807380
|
|
mov r2, #0xe
|
|
strh r2, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
add r1, r2, #0x208
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r4, #4]
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E4F50
|
|
_027E4F28:
|
|
ldr r0, [sp]
|
|
bl sub_037FDD14
|
|
bl sub_03807380
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xa
|
|
strh r1, [r0, #4]
|
|
bl sub_03807334
|
|
_027E4F50:
|
|
add sp, sp, #0x204
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E4F5C: .word 0x027F8878
|
|
_027E4F60: .word 0x027F7878
|
|
_027E4F64: .word 0x0000FFFF
|
|
arm_func_end sub_027E4BD4
|
|
|
|
arm_func_start sub_027E4F68
|
|
sub_027E4F68: ; 0x027E4F68
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x14
|
|
ldr r1, _027E509C ; =0x027F8878
|
|
ldr r2, [r0, #0x10]
|
|
ldr sl, [r1, #0x550]
|
|
ldr r5, [r0, #8]
|
|
add r4, sl, #0x100
|
|
ldr r3, [r0, #0x14]
|
|
ldrh r8, [r4, #0x88]
|
|
mov r1, r5, lsl #0x10
|
|
ldrh sb, [r4, #0x82]
|
|
ldr fp, [r0, #4]
|
|
ldr r5, [r0, #0xc]
|
|
cmp r8, #0
|
|
ldr r6, [r0, #0x18]
|
|
ldr r7, [r0, #0x1c]
|
|
mov r2, r2, lsl #0x10
|
|
mov r0, r2, lsr #0x10
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sl, #0xc]
|
|
movne r5, #1
|
|
cmp r0, #0
|
|
mov r3, r3, lsl #0x10
|
|
mov r4, r1, lsr #0x10
|
|
mov r1, r3, lsr #0x10
|
|
moveq r8, #3
|
|
beq _027E4FFC
|
|
tst r5, sb
|
|
moveq r8, #0
|
|
beq _027E4FFC
|
|
str fp, [sp]
|
|
stmib sp, {r4, r6, r7}
|
|
ldr r2, [sp, #0x10]
|
|
mov r0, sb
|
|
mov r3, r5
|
|
bl sub_027E73B8
|
|
mov r8, r0
|
|
_027E4FFC:
|
|
cmp r8, #2
|
|
beq _027E5090
|
|
bl sub_03807380
|
|
mov r1, #0x81
|
|
strh r1, [r0]
|
|
strh r8, [r0, #2]
|
|
mov r1, #0x14
|
|
strh r1, [r0, #8]
|
|
ldr r1, [sp, #0x10]
|
|
cmp r8, #0xa
|
|
strh r1, [r0, #0xa]
|
|
andeq r1, r5, sb
|
|
strh r5, [r0, #0xc]
|
|
movne r1, #0
|
|
strh r1, [r0, #0xe]
|
|
mov r1, #0
|
|
strh r1, [r0, #0x10]
|
|
strh r4, [r0, #0x18]
|
|
str fp, [r0, #0x14]
|
|
str r6, [r0, #0x1c]
|
|
ldr r1, _027E50A0 ; =0x0000FFFF
|
|
str r7, [r0, #0x20]
|
|
strh r1, [r0, #0x1a]
|
|
add r1, sl, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
ldrh r2, [sl, #0x30]
|
|
cmp r1, #0
|
|
ldrh r3, [sl, #0x32]
|
|
moveq r1, r2
|
|
movne r1, r3
|
|
strh r1, [r0, #0x24]
|
|
add r1, sl, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
cmp r1, #0
|
|
movne r3, r2
|
|
strh r3, [r0, #0x26]
|
|
bl sub_03807334
|
|
_027E5090:
|
|
add sp, sp, #0x14
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E509C: .word 0x027F8878
|
|
_027E50A0: .word 0x0000FFFF
|
|
arm_func_end sub_027E4F68
|
|
|
|
arm_func_start sub_027E50A4
|
|
sub_027E50A4: ; 0x027E50A4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r0, _027E51B4 ; =0x027F8878
|
|
mov r4, #0
|
|
ldr r6, [r0, #0x550]
|
|
ldrh r0, [r6]
|
|
cmp r0, #9
|
|
cmpne r0, #0xa
|
|
beq _027E50E4
|
|
bl sub_03807380
|
|
mov r1, #0x10
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
b _027E51A8
|
|
_027E50E4:
|
|
bl sub_037FDD00
|
|
ldr r1, [r6, #0xc]
|
|
mov r5, r0
|
|
mov r0, #0
|
|
cmp r1, #1
|
|
str r0, [r6, #0xc]
|
|
moveq r4, #1
|
|
bl sub_027E5B8C
|
|
bl sub_027E0640
|
|
ldrh r0, [r6]
|
|
cmp r0, #0xa
|
|
moveq r0, #8
|
|
streqh r0, [r6]
|
|
beq _027E5128
|
|
cmp r0, #9
|
|
moveq r0, #7
|
|
streqh r0, [r6]
|
|
_027E5128:
|
|
mov r0, r5
|
|
bl sub_037FDD14
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
bl sub_027E2700
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E5154
|
|
ldr r0, _027E51B8 ; =0x00000216
|
|
bl sub_027E51C0
|
|
b _027E51A8
|
|
_027E5154:
|
|
add r0, sp, #0
|
|
mov r1, #7
|
|
bl sub_027E23AC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E5178
|
|
mov r0, #0x104
|
|
bl sub_027E51C0
|
|
b _027E51A8
|
|
_027E5178:
|
|
mov r0, #0
|
|
strh r0, [r6, #0x8a]
|
|
cmp r4, #0
|
|
beq _027E5190
|
|
ldr r0, _027E51BC ; =0x0000FFFF
|
|
bl sub_027E781C
|
|
_027E5190:
|
|
bl sub_03807380
|
|
mov r1, #0x10
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E51A8:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E51B4: .word 0x027F8878
|
|
_027E51B8: .word 0x00000216
|
|
_027E51BC: .word 0x0000FFFF
|
|
arm_func_end sub_027E50A4
|
|
|
|
arm_func_start sub_027E51C0
|
|
sub_027E51C0: ; 0x027E51C0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
bl sub_03807380
|
|
mov r1, #0x10
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
strh r5, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027E51C0
|
|
|
|
arm_func_start sub_027E51F4
|
|
sub_027E51F4: ; 0x027E51F4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _027E527C ; =0x027F8878
|
|
ldr r2, [r0, #8]
|
|
ldr r4, [r1, #0x550]
|
|
mov r5, r2, lsl #0x10
|
|
ldr r6, [r0, #4]
|
|
mov r7, r5, lsr #0x10
|
|
bl sub_037FDD00
|
|
str r6, [r4, #0xb0]
|
|
strh r7, [r4, #0xb8]
|
|
add r1, r6, r5, lsr #16
|
|
str r1, [r4, #0xb4]
|
|
mov r1, #0
|
|
strh r1, [r4, #0xae]
|
|
str r1, [r4, #0xa8]
|
|
strh r1, [r4, #0xac]
|
|
str r1, [r4, #0x18]
|
|
mov r1, #0xb
|
|
strh r1, [r4]
|
|
mov r5, r0
|
|
bl sub_03807380
|
|
mov r1, #0x11
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xe
|
|
strh r1, [r0, #4]
|
|
bl sub_03807334
|
|
mov r1, #1
|
|
mov r0, r5
|
|
str r1, [r4, #0x10]
|
|
bl sub_037FDD14
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E527C: .word 0x027F8878
|
|
arm_func_end sub_027E51F4
|
|
|
|
arm_func_start sub_027E5280
|
|
sub_027E5280: ; 0x027E5280
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x230
|
|
ldr r1, _027E5374 ; =0x027F8878
|
|
mov r5, r0
|
|
ldr r4, [r1, #0x550]
|
|
add r0, r5, #4
|
|
add r1, r4, #0xa2
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
ldr r0, [r5, #0xc]
|
|
add r1, sp, #0
|
|
str r0, [r4, #0xa8]
|
|
ldr r2, [r5, #0x10]
|
|
mov r0, #1
|
|
strh r2, [r4, #0xac]
|
|
str r0, [r4, #0x18]
|
|
mov r0, #0
|
|
mov r2, #0x30
|
|
bl sub_037FDF74
|
|
mov r0, #0
|
|
strh r0, [sp]
|
|
ldr r1, [r5, #0x10]
|
|
add r0, r4, #0x100
|
|
strh r1, [sp, #6]
|
|
ldrh r0, [r0, #0xec]
|
|
add r1, sp, #0x18
|
|
cmp r0, #2
|
|
moveq r3, #0x14
|
|
movne r3, #0xa
|
|
add r0, r5, #4
|
|
mov r2, #6
|
|
strb r3, [sp, #0xe]
|
|
bl sub_037FE12C
|
|
add r1, sp, #0x1e
|
|
add r0, r4, #0xe0
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
ldr r2, [r5, #0xc]
|
|
add r0, sp, #0x30
|
|
add r1, sp, #0
|
|
str r2, [sp, #0x2c]
|
|
bl sub_027E2200
|
|
mov r4, r0
|
|
bl sub_03807380
|
|
mov r1, #0x12
|
|
strh r1, [r0]
|
|
ldrh r1, [r4, #4]
|
|
cmp r1, #0
|
|
moveq r1, #0
|
|
movne r1, #1
|
|
strh r1, [r0, #2]
|
|
ldrh r1, [r4, #4]
|
|
cmp r1, #0
|
|
movne r1, #0x100
|
|
strneh r1, [r0, #4]
|
|
ldrneh r1, [r4, #4]
|
|
strneh r1, [r0, #6]
|
|
bl sub_03807334
|
|
add sp, sp, #0x230
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E5374: .word 0x027F8878
|
|
arm_func_end sub_027E5280
|
|
|
|
arm_func_start sub_027E5378
|
|
sub_027E5378: ; 0x027E5378
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r0, _027E5430 ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
bl sub_037FDD00
|
|
ldrh r1, [r4]
|
|
cmp r1, #0xb
|
|
beq _027E53B8
|
|
bl sub_037FDD14
|
|
bl sub_03807380
|
|
mov r1, #0x13
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
b _027E5424
|
|
_027E53B8:
|
|
mov r1, #0
|
|
str r1, [r4, #0x10]
|
|
mov r1, #8
|
|
strh r1, [r4]
|
|
bl sub_037FDD14
|
|
add r0, sp, #0
|
|
mov r1, #7
|
|
bl sub_027E23AC
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
beq _027E540C
|
|
bl sub_03807380
|
|
mov r1, #0x13
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x104
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E5424
|
|
_027E540C:
|
|
bl sub_03807380
|
|
mov r1, #0x13
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E5424:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E5430: .word 0x027F8878
|
|
arm_func_end sub_027E5378
|
|
|
|
arm_func_start sub_027E5434
|
|
sub_027E5434: ; 0x027E5434
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _027E54D8 ; =0x027F8878
|
|
ldr r2, [r0, #4]
|
|
ldr r3, [r1, #0x550]
|
|
add r1, r3, #0x100
|
|
strh r2, [r1, #0x96]
|
|
ldrh r1, [r1, #0x96]
|
|
cmp r1, #3
|
|
addls pc, pc, r1, lsl #2
|
|
b _027E5484
|
|
_027E545C: ; jump table
|
|
b _027E546C ; case 0
|
|
b _027E5478 ; case 1
|
|
b _027E5478 ; case 2
|
|
b _027E5478 ; case 3
|
|
_027E546C:
|
|
mov r1, #0
|
|
str r1, [r3, #0x198]
|
|
b _027E548C
|
|
_027E5478:
|
|
mov r1, #1
|
|
str r1, [r3, #0x198]
|
|
b _027E548C
|
|
_027E5484:
|
|
mov r1, #0
|
|
str r1, [r3, #0x198]
|
|
_027E548C:
|
|
ldr r1, [r3, #0x198]
|
|
mov r2, #0x50
|
|
cmp r1, #1
|
|
bne _027E54AC
|
|
ldr r0, [r0, #8]
|
|
add r1, r3, #0x19c
|
|
bl sub_037FE12C
|
|
b _027E54B8
|
|
_027E54AC:
|
|
add r0, r3, #0x19c
|
|
mov r1, #0
|
|
bl sub_037FE070
|
|
_027E54B8:
|
|
bl sub_03807380
|
|
mov r1, #0x14
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E54D8: .word 0x027F8878
|
|
arm_func_end sub_027E5434
|
|
|
|
arm_func_start sub_027E54DC
|
|
sub_027E54DC: ; 0x027E54DC
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r1, _027E55D0 ; =0x027F8878
|
|
mov r5, r0
|
|
ldr r4, [r1, #0x550]
|
|
ldr r1, [r5, #4]
|
|
add r0, r4, #0x100
|
|
strh r1, [r0, #0x96]
|
|
ldrh r0, [r0, #0x96]
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _027E5534
|
|
_027E550C: ; jump table
|
|
b _027E551C ; case 0
|
|
b _027E5528 ; case 1
|
|
b _027E5528 ; case 2
|
|
b _027E5528 ; case 3
|
|
_027E551C:
|
|
mov r0, #0
|
|
str r0, [r4, #0x198]
|
|
b _027E553C
|
|
_027E5528:
|
|
mov r0, #1
|
|
str r0, [r4, #0x198]
|
|
b _027E553C
|
|
_027E5534:
|
|
mov r0, #0
|
|
str r0, [r4, #0x198]
|
|
_027E553C:
|
|
ldr r0, [r4, #0x198]
|
|
mov r2, #0x50
|
|
cmp r0, #1
|
|
bne _027E555C
|
|
ldr r0, [r5, #8]
|
|
add r1, r4, #0x19c
|
|
bl sub_037FE12C
|
|
b _027E5568
|
|
_027E555C:
|
|
add r0, r4, #0x19c
|
|
mov r1, #0
|
|
bl sub_037FE070
|
|
_027E5568:
|
|
ldr r1, [r5, #0xc]
|
|
add r0, sp, #0
|
|
strh r1, [r4, #0xc4]
|
|
ldrh r1, [r4, #0xc4]
|
|
bl sub_027E2458
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
beq _027E55AC
|
|
bl sub_03807380
|
|
mov r2, #0x14
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
rsb r1, r1, #0x208
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
_027E55AC:
|
|
bl sub_03807380
|
|
mov r1, #0x27
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E55D0: .word 0x027F8878
|
|
arm_func_end sub_027E54DC
|
|
|
|
arm_func_start sub_027E55D4
|
|
sub_027E55D4: ; 0x027E55D4
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x280
|
|
ldr r1, _027E56C0 ; =0x027F8878
|
|
ldr r2, [r0, #4]
|
|
ldr r4, [r1, #0x550]
|
|
str r2, [r4, #0xe8]
|
|
ldr r1, [r0, #8]
|
|
strh r1, [r4, #0xec]
|
|
ldr r1, [r0, #0xc]
|
|
str r1, [r4, #0xf0]
|
|
ldr r1, [r0, #0x10]
|
|
strh r1, [r4, #0xf4]
|
|
ldr r0, [r0, #0x14]
|
|
and r0, r0, #0xff
|
|
tst r0, #1
|
|
movne r1, #1
|
|
moveq r1, #0
|
|
strh r1, [r4, #0xf6]
|
|
tst r0, #2
|
|
movne r1, #1
|
|
moveq r1, #0
|
|
strh r1, [r4, #0xfa]
|
|
tst r0, #4
|
|
movne r1, #1
|
|
moveq r1, #0
|
|
tst r0, #8
|
|
strh r1, [r4, #0xfc]
|
|
movne r1, #1
|
|
moveq r1, #0
|
|
strh r1, [r4, #0xfe]
|
|
add r0, sp, #0
|
|
add r1, r4, #0xe8
|
|
bl sub_027E030C
|
|
ldrh r1, [r4, #0xec]
|
|
add r0, sp, #0x80
|
|
add r1, r1, #0x10
|
|
mov r1, r1, lsl #0x10
|
|
add r2, sp, #0
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_027E27B8
|
|
mov r4, r0
|
|
bl sub_03807380
|
|
mov r1, #0x18
|
|
strh r1, [r0]
|
|
ldrh r1, [r4, #4]
|
|
cmp r1, #0
|
|
moveq r1, #0
|
|
movne r1, #1
|
|
strh r1, [r0, #2]
|
|
ldrh r1, [r4, #4]
|
|
cmp r1, #0
|
|
ldrne r1, _027E56C4 ; =0x00000245
|
|
strneh r1, [r0, #4]
|
|
ldrneh r1, [r4, #4]
|
|
strneh r1, [r0, #6]
|
|
bl sub_03807334
|
|
add sp, sp, #0x280
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E56C0: .word 0x027F8878
|
|
_027E56C4: .word 0x00000245
|
|
arm_func_end sub_027E55D4
|
|
|
|
arm_func_start sub_027E56C8
|
|
sub_027E56C8: ; 0x027E56C8
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r1, [r0, #4]
|
|
add r0, sp, #0
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_027E26A4
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
beq _027E5718
|
|
bl sub_03807380
|
|
mov r2, #0x19
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
add r1, r1, #0x214
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E5730
|
|
_027E5718:
|
|
bl sub_03807380
|
|
mov r1, #0x19
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E5730:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027E56C8
|
|
|
|
arm_func_start sub_027E573C
|
|
sub_027E573C: ; 0x027E573C
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_03807380
|
|
mov r1, #0x1a
|
|
strh r1, [r0]
|
|
mov r1, #4
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_027E573C
|
|
|
|
arm_func_start sub_027E5760
|
|
sub_027E5760: ; 0x027E5760
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_03807380
|
|
mov r1, #0x1b
|
|
strh r1, [r0]
|
|
mov r1, #4
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_027E5760
|
|
|
|
arm_func_start sub_027E5784
|
|
sub_027E5784: ; 0x027E5784
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #0x200
|
|
ldmib r0, {r1, r2, r3}
|
|
ldr r0, [r0, #0x10]
|
|
mov r1, r1, lsl #0x10
|
|
mov r4, r0, lsl #0x10
|
|
mov r2, r2, lsl #0x10
|
|
mov r3, r3, lsl #0x10
|
|
ldr ip, _027E58A4 ; =0x027F8878
|
|
mov r5, r4, lsr #0x10
|
|
add r0, sp, #0
|
|
mov r1, r1, lsr #0x10
|
|
mov r2, r2, lsr #0x10
|
|
mov r3, r3, lsr #0x10
|
|
ldr r4, [ip, #0x550]
|
|
bl sub_027E25E0
|
|
ldrh r6, [r0, #4]
|
|
cmp r6, #0
|
|
beq _027E57F8
|
|
bl sub_03807380
|
|
mov r2, #0x1d
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
add r1, r1, #0x210
|
|
strh r1, [r0, #4]
|
|
strh r6, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E5898
|
|
_027E57F8:
|
|
ldr r0, _027E58A8 ; =0x0000FFFF
|
|
cmp r5, r0
|
|
beq _027E584C
|
|
cmp r5, #0
|
|
moveq r1, #1
|
|
moveq r0, #0
|
|
beq _027E5840
|
|
mov r0, #0x64
|
|
mul r2, r5, r0
|
|
ldr r0, _027E58AC ; =0x000082EA
|
|
mov r1, #0
|
|
umull ip, r3, r2, r0
|
|
mla r3, r2, r1, r3
|
|
mov r1, r2, asr #0x1f
|
|
mla r3, r1, r0, r3
|
|
mov r1, ip, lsr #6
|
|
mov r0, r3, lsr #6
|
|
orr r1, r1, r3, lsl #26
|
|
_027E5840:
|
|
str r1, [r4, #0x7b8]
|
|
str r0, [r4, #0x7bc]
|
|
b _027E5858
|
|
_027E584C:
|
|
mov r0, #0
|
|
str r0, [r4, #0x7b8]
|
|
str r0, [r4, #0x7bc]
|
|
_027E5858:
|
|
bl sub_037FD21C
|
|
orr r1, r1, #0
|
|
orr r2, r0, #1
|
|
mov r3, #0
|
|
_027E5868:
|
|
add r0, r4, r3, lsl #3
|
|
str r2, [r0, #0x738]
|
|
add r3, r3, #1
|
|
str r1, [r0, #0x73c]
|
|
cmp r3, #0x10
|
|
blt _027E5868
|
|
bl sub_03807380
|
|
mov r1, #0x1d
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E5898:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E58A4: .word 0x027F8878
|
|
_027E58A8: .word 0x0000FFFF
|
|
_027E58AC: .word 0x000082EA
|
|
arm_func_end sub_027E5784
|
|
|
|
arm_func_start sub_027E58B0
|
|
sub_027E58B0: ; 0x027E58B0
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
|
|
sub sp, sp, #0x214
|
|
ldr r1, _027E5A4C ; =0x027F8878
|
|
mov r7, r0
|
|
ldr r6, [r1, #0x550]
|
|
add r4, sp, #0x14
|
|
ldrh r0, [r6]
|
|
cmp r0, #2
|
|
beq _027E58F0
|
|
bl sub_03807380
|
|
mov r1, #0x1e
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
b _027E5A40
|
|
_027E58F0:
|
|
mov r0, r4
|
|
bl sub_027E2924
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E5910
|
|
mov r0, #0x308
|
|
bl sub_027E5A58
|
|
b _027E5A40
|
|
_027E5910:
|
|
ldrh r1, [r0, #6]
|
|
mov r0, #2
|
|
strh r0, [r6, #0xe6]
|
|
cmp r1, #0x10
|
|
bne _027E5990
|
|
mov r1, r4
|
|
mov r0, #0xa
|
|
bl sub_027E03D0
|
|
cmp r0, #0
|
|
beq _027E5A40
|
|
mov r0, r4
|
|
bl sub_027E28B0
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E5958
|
|
ldr r0, _027E5A50 ; =0x00000303
|
|
bl sub_027E5A58
|
|
b _027E5A40
|
|
_027E5958:
|
|
mov r0, #3
|
|
mov r1, #1
|
|
strh r0, [r6]
|
|
mov r0, r4
|
|
mov r3, r1
|
|
mov r2, #0
|
|
bl sub_027E1DBC
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #1
|
|
cmp r1, #0
|
|
beq _027E598C
|
|
bl sub_027E5A58
|
|
b _027E5A40
|
|
_027E598C:
|
|
strh r0, [r6, #0xc6]
|
|
_027E5990:
|
|
ldrh r8, [r7, #2]
|
|
ldrh sb, [r7, #4]
|
|
ldrh r5, [r7, #6]
|
|
ldrh r7, [r7, #8]
|
|
add r0, sp, #4
|
|
mov r1, #0
|
|
mov r2, #0x10
|
|
bl sub_037FE070
|
|
strb r5, [sp, #4]
|
|
add r0, sp, #4
|
|
str r0, [sp]
|
|
mov r0, r4
|
|
mov r1, r8
|
|
mov r2, sb
|
|
mov r3, r7
|
|
bl sub_027E2180
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E59E8
|
|
mov r0, #0xa
|
|
bl sub_027E5A58
|
|
b _027E5A40
|
|
_027E59E8:
|
|
ldrh r1, [r0, #8]
|
|
mov r0, r4
|
|
and r4, r1, #0xff
|
|
mov r1, r1, lsl #8
|
|
mov r5, r1, lsr #0x10
|
|
bl sub_027E2898
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E5A18
|
|
ldr r0, _027E5A54 ; =0x00000302
|
|
bl sub_027E5A58
|
|
b _027E5A40
|
|
_027E5A18:
|
|
mov r0, #2
|
|
strh r0, [r6]
|
|
bl sub_03807380
|
|
mov r1, #0x1e
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
strh r4, [r0, #8]
|
|
strh r5, [r0, #0xa]
|
|
bl sub_03807334
|
|
_027E5A40:
|
|
add sp, sp, #0x214
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E5A4C: .word 0x027F8878
|
|
_027E5A50: .word 0x00000303
|
|
_027E5A54: .word 0x00000302
|
|
arm_func_end sub_027E58B0
|
|
|
|
arm_func_start sub_027E5A58
|
|
sub_027E5A58: ; 0x027E5A58
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
bl sub_03807380
|
|
mov r1, #0x1e
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
strh r5, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027E5A58
|
|
|
|
arm_func_start sub_027E5A8C
|
|
sub_027E5A8C: ; 0x027E5A8C
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x200
|
|
add r0, sp, #0
|
|
bl sub_027E28DC
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
beq _027E5AD0
|
|
bl sub_03807380
|
|
mov r2, #0x1f
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
add r1, r1, #0x304
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E5AE8
|
|
_027E5AD0:
|
|
bl sub_03807380
|
|
mov r1, #0x1f
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E5AE8:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027E5A8C
|
|
|
|
arm_func_start sub_027E5AF4
|
|
sub_027E5AF4: ; 0x027E5AF4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x200
|
|
add r0, sp, #0
|
|
bl sub_027E290C
|
|
mov r5, r0
|
|
ldrh r4, [r5, #4]
|
|
cmp r4, #0
|
|
beq _027E5B3C
|
|
bl sub_03807380
|
|
mov r2, #0x20
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
rsb r1, r1, #0x308
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E5B6C
|
|
_027E5B3C:
|
|
bl sub_03807380
|
|
mov r4, r0
|
|
mov r0, #0x20
|
|
strh r0, [r4]
|
|
mov r3, #0
|
|
add r0, r5, #8
|
|
add r1, r4, #8
|
|
mov r2, #0xb4
|
|
strh r3, [r4, #2]
|
|
bl sub_037FDF9C
|
|
mov r0, r4
|
|
bl sub_03807334
|
|
_027E5B6C:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027E5AF4
|
|
|
|
arm_func_start sub_027E5B78
|
|
sub_027E5B78: ; 0x027E5B78
|
|
ldr ip, _027E5B84 ; =sub_037FD884
|
|
ldr r0, _027E5B88 ; =0x0380B460
|
|
bx ip
|
|
.align 2, 0
|
|
_027E5B84: .word sub_037FD884
|
|
_027E5B88: .word 0x0380B460
|
|
arm_func_end sub_027E5B78
|
|
|
|
arm_func_start sub_027E5B8C
|
|
sub_027E5B8C: ; 0x027E5B8C
|
|
ldr ip, _027E5B98 ; =sub_037FDA38
|
|
ldr r0, _027E5B9C ; =0x0380B460
|
|
bx ip
|
|
.align 2, 0
|
|
_027E5B98: .word sub_037FDA38
|
|
_027E5B9C: .word 0x0380B460
|
|
arm_func_end sub_027E5B8C
|
|
|
|
arm_func_start sub_027E5BA0
|
|
sub_027E5BA0: ; 0x027E5BA0
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r1, _027E5C40 ; =0x027F8878
|
|
ldr r0, _027E5C44 ; =0x0380B460
|
|
ldr r4, [r1, #0x550]
|
|
ldrh r1, [r4, #0xe6]
|
|
cmp r1, #1
|
|
bne _027E5BF0
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _027E5BD0
|
|
bl sub_037FDA38
|
|
_027E5BD0:
|
|
ldr r0, _027E5C44 ; =0x0380B460
|
|
mov r1, #0xcb
|
|
mov ip, #3
|
|
ldr r3, _027E5C48 ; =0x027E5F8C
|
|
add r2, r1, #0x3c
|
|
str ip, [sp]
|
|
bl sub_037FD898
|
|
b _027E5C34
|
|
_027E5BF0:
|
|
cmp r1, #2
|
|
bne _027E5C34
|
|
mov r1, #0
|
|
str r1, [r4, #0x1c]
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _027E5C10
|
|
bl sub_037FDA38
|
|
_027E5C10:
|
|
ldr r0, _027E5C44 ; =0x0380B460
|
|
mov r2, #1
|
|
mov r1, #0xc8
|
|
ldr r3, _027E5C4C ; =0x027E5C50
|
|
str r2, [sp]
|
|
add r2, r1, #0x3f
|
|
bl sub_037FD898
|
|
mov r0, #0
|
|
str r0, [r4, #0xd8]
|
|
_027E5C34:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E5C40: .word 0x027F8878
|
|
_027E5C44: .word 0x0380B460
|
|
_027E5C48: .word 0x027E5F8C
|
|
_027E5C4C: .word 0x027E5C50
|
|
arm_func_end sub_027E5BA0
|
|
|
|
arm_func_start sub_027E5C50
|
|
sub_027E5C50: ; 0x027E5C50
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r1, _027E5D8C ; =0x027F8878
|
|
ldr r2, _027E5D90 ; =0x0380FFF0
|
|
ldr r0, [r1, #0x550]
|
|
ldrh r3, [r2]
|
|
str r3, [r0, #0xd0]
|
|
ldr r2, [r0, #0xd4]
|
|
cmp r2, r3
|
|
beq _027E5D30
|
|
str r3, [r0, #0xd4]
|
|
ldr r1, [r1, #0x550]
|
|
ldr r3, _027E5D94 ; =0x048080F8
|
|
ldr r2, [r1, #0xd0]
|
|
mov r2, r2, lsl #6
|
|
str r2, [r1, #0xd0]
|
|
ldrh r2, [r3]
|
|
ldrh lr, [r3, #2]
|
|
ldrh r4, [r3]
|
|
cmp r2, r4
|
|
ldrhih lr, [r3, #2]
|
|
ldr r3, _027E5D98 ; =0x04000006
|
|
ldr r2, _027E5D9C ; =0x00000107
|
|
ldrh ip, [r3]
|
|
ldr r3, _027E5DA0 ; =0x003FFFC0
|
|
sub ip, r2, ip
|
|
orr lr, r4, lr, lsl #16
|
|
ldr r2, [r1, #0xd0]
|
|
and lr, lr, r3
|
|
rsb ip, ip, ip, lsl #7
|
|
add ip, ip, lr, lsl #1
|
|
and lr, r3, ip, lsr #1
|
|
cmp r2, lr
|
|
movhi r2, #0
|
|
strhi r2, [r1, #0xd8]
|
|
bhi _027E5D30
|
|
mov ip, #1
|
|
b _027E5D20
|
|
_027E5CE8:
|
|
ldr r2, [r1, #0xd0]
|
|
add r2, r2, #0x4b
|
|
add r3, r2, #0x4100
|
|
str r3, [r1, #0xd0]
|
|
cmp r3, lr
|
|
bls _027E5D1C
|
|
ldr r2, _027E5DA4 ; =0x0000400E
|
|
sub r3, r3, lr
|
|
cmp r3, r2
|
|
str r3, [r1, #0xd8]
|
|
movhi r2, #0
|
|
strhi r2, [r1, #0xd8]
|
|
b _027E5D30
|
|
_027E5D1C:
|
|
add ip, ip, #1
|
|
_027E5D20:
|
|
cmp ip, #0x1e
|
|
blt _027E5CE8
|
|
mov r2, #0
|
|
str r2, [r1, #0xd8]
|
|
_027E5D30:
|
|
ldr r1, [r0, #0xd8]
|
|
cmp r1, #0x7f
|
|
bls _027E5D5C
|
|
ldr r0, _027E5DA8 ; =0x0380B460
|
|
mov r1, #0xd0
|
|
mov ip, #2
|
|
ldr r3, _027E5DAC ; =0x027E5DB4
|
|
add r2, r1, #0x37
|
|
str ip, [sp]
|
|
bl sub_037FD898
|
|
b _027E5D80
|
|
_027E5D5C:
|
|
mov r2, #1
|
|
str r2, [r0, #0x1c]
|
|
mov r1, #4
|
|
str r1, [sp]
|
|
ldrsh r1, [r0, #0x42]
|
|
ldr r0, _027E5DA8 ; =0x0380B460
|
|
ldr r3, _027E5DB0 ; =0x027E5E74
|
|
rsb r2, r2, #0x108
|
|
bl sub_037FD898
|
|
_027E5D80:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E5D8C: .word 0x027F8878
|
|
_027E5D90: .word 0x0380FFF0
|
|
_027E5D94: .word 0x048080F8
|
|
_027E5D98: .word 0x04000006
|
|
_027E5D9C: .word 0x00000107
|
|
_027E5DA0: .word 0x003FFFC0
|
|
_027E5DA4: .word 0x0000400E
|
|
_027E5DA8: .word 0x0380B460
|
|
_027E5DAC: .word 0x027E5DB4
|
|
_027E5DB0: .word 0x027E5E74
|
|
arm_func_end sub_027E5C50
|
|
|
|
arm_func_start sub_027E5DB4
|
|
sub_027E5DB4: ; 0x027E5DB4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _027E5E60 ; =0x04000006
|
|
ldr r0, _027E5E64 ; =0x027F8878
|
|
ldrh ip, [r1]
|
|
ldr r0, [r0, #0x550]
|
|
cmp ip, #0xd0
|
|
blt _027E5E2C
|
|
cmp ip, #0xd2
|
|
bge _027E5E2C
|
|
ldr r1, [r0, #0xd8]
|
|
cmp r1, #0x7f
|
|
blo _027E5E2C
|
|
mov r3, #1
|
|
b _027E5E04
|
|
_027E5DEC:
|
|
ldr r2, [r0, #0xd8]
|
|
rsb r1, r3, r3, lsl #6
|
|
add r1, r1, #0x7f
|
|
cmp r2, r1
|
|
blo _027E5E0C
|
|
add r3, r3, #1
|
|
_027E5E04:
|
|
cmp r3, #7
|
|
blt _027E5DEC
|
|
_027E5E0C:
|
|
ldr r1, _027E5E60 ; =0x04000006
|
|
rsb r2, r3, #1
|
|
add r2, ip, r2
|
|
strh r2, [r1]
|
|
ldr r2, [r0, #0xd8]
|
|
rsb r1, r3, r3, lsl #6
|
|
sub r1, r2, r1
|
|
str r1, [r0, #0xd8]
|
|
_027E5E2C:
|
|
ldr r1, [r0, #0xd8]
|
|
ldr r2, _027E5E68 ; =0x00000107
|
|
cmp r1, #0x7f
|
|
movhs r1, #0
|
|
strhs r1, [r0, #0x1c]
|
|
mov r1, #4
|
|
str r1, [sp]
|
|
ldrsh r1, [r0, #0x42]
|
|
ldr r0, _027E5E6C ; =0x0380B460
|
|
ldr r3, _027E5E70 ; =0x027E5E74
|
|
bl sub_037FD898
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E5E60: .word 0x04000006
|
|
_027E5E64: .word 0x027F8878
|
|
_027E5E68: .word 0x00000107
|
|
_027E5E6C: .word 0x0380B460
|
|
_027E5E70: .word 0x027E5E74
|
|
arm_func_end sub_027E5DB4
|
|
|
|
arm_func_start sub_027E5E74
|
|
sub_027E5E74: ; 0x027E5E74
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r0, _027E5F78 ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
bne _027E5F6C
|
|
ldr r0, _027E5F7C ; =0x0380B460
|
|
mov r2, #1
|
|
mov r1, #0xc8
|
|
ldr r3, _027E5F80 ; =0x027E5C50
|
|
str r2, [sp]
|
|
add r2, r1, #0x3f
|
|
bl sub_037FD898
|
|
ldr r0, [r4, #0x7bc]
|
|
ldr r1, [r4, #0x7b8]
|
|
cmp r0, #0
|
|
cmpeq r1, #0
|
|
beq _027E5F68
|
|
bl sub_037FD21C
|
|
ldr r3, [r4, #0x73c]
|
|
ldr ip, [r4, #0x738]
|
|
cmp r3, #0
|
|
cmpeq ip, #0
|
|
orr lr, r1, #0
|
|
orr r1, r0, #1
|
|
mov r0, #0
|
|
beq _027E5F68
|
|
ldr r2, [r4, #0x7b8]
|
|
subs ip, r1, ip
|
|
ldr r1, [r4, #0x7bc]
|
|
sbc r3, lr, r3
|
|
cmp r3, r1
|
|
cmpeq ip, r2
|
|
bls _027E5F68
|
|
str r0, [r4, #0x738]
|
|
str r0, [r4, #0x73c]
|
|
bl sub_027E0700
|
|
movs r1, r0
|
|
moveq r0, #0
|
|
beq _027E5F34
|
|
mov r0, #0x25
|
|
str r0, [r1]
|
|
ldr r3, _027E5F84 ; =0x00008001
|
|
mov r2, #0
|
|
ldr r0, _027E5F88 ; =0x027F7900
|
|
stmib r1, {r2, r3}
|
|
bl sub_037FC6D4
|
|
_027E5F34:
|
|
cmp r0, #0
|
|
bne _027E5F6C
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x25
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E5F6C
|
|
_027E5F68:
|
|
bl sub_027E6090
|
|
_027E5F6C:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E5F78: .word 0x027F8878
|
|
_027E5F7C: .word 0x0380B460
|
|
_027E5F80: .word 0x027E5C50
|
|
_027E5F84: .word 0x00008001
|
|
_027E5F88: .word 0x027F7900
|
|
arm_func_end sub_027E5E74
|
|
|
|
arm_func_start sub_027E5F8C
|
|
sub_027E5F8C: ; 0x027E5F8C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027E602C ; =0x027F8878
|
|
ldr r0, [r0, #0x550]
|
|
ldrh r1, [r0, #0xdc]
|
|
cmp r1, #0x3c
|
|
blo _027E5FC8
|
|
ldr r2, _027E6030 ; =0x04000006
|
|
ldrh r1, [r2]
|
|
cmp r1, #0xcb
|
|
blt _027E5FD0
|
|
cmp r1, #0xd2
|
|
strlth r1, [r2]
|
|
movlt r1, #0
|
|
strlth r1, [r0, #0xdc]
|
|
b _027E5FD0
|
|
_027E5FC8:
|
|
add r1, r1, #1
|
|
strh r1, [r0, #0xdc]
|
|
_027E5FD0:
|
|
ldr r1, _027E6030 ; =0x04000006
|
|
ldr r2, _027E6034 ; =0x048080F8
|
|
ldrh lr, [r1]
|
|
ldrh r1, [r2]
|
|
ldrh r3, [r2, #2]
|
|
ldrh ip, [r2]
|
|
cmp r1, ip
|
|
ldrhih r3, [r2, #2]
|
|
ldr r1, _027E6038 ; =0x0380FFF0
|
|
orr r3, ip, r3, lsl #16
|
|
rsb r2, lr, lr, lsl #7
|
|
rsb r2, r2, r3, lsl #1
|
|
mov r3, r2, lsr #7
|
|
strh r3, [r1]
|
|
mov r2, #5
|
|
str r2, [sp]
|
|
ldrsh r1, [r0, #0x40]
|
|
ldr r0, _027E603C ; =0x0380B460
|
|
ldr r3, _027E6040 ; =0x027E6044
|
|
rsb r2, r2, #0x10c
|
|
bl sub_037FD898
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E602C: .word 0x027F8878
|
|
_027E6030: .word 0x04000006
|
|
_027E6034: .word 0x048080F8
|
|
_027E6038: .word 0x0380FFF0
|
|
_027E603C: .word 0x0380B460
|
|
_027E6040: .word 0x027E6044
|
|
arm_func_end sub_027E5F8C
|
|
|
|
arm_func_start sub_027E6044
|
|
sub_027E6044: ; 0x027E6044
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027E6084 ; =0x027F8878
|
|
ldr r0, [r0, #0x550]
|
|
ldr r0, [r0, #0xc]
|
|
cmp r0, #1
|
|
bne _027E607C
|
|
ldr r0, _027E6088 ; =0x0380B460
|
|
mov r1, #0xcb
|
|
mov ip, #3
|
|
ldr r3, _027E608C ; =0x027E5F8C
|
|
add r2, r1, #0x3c
|
|
str ip, [sp]
|
|
bl sub_037FD898
|
|
bl sub_027E6090
|
|
_027E607C:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E6084: .word 0x027F8878
|
|
_027E6088: .word 0x0380B460
|
|
_027E608C: .word 0x027E5F8C
|
|
arm_func_end sub_027E6044
|
|
|
|
arm_func_start sub_027E6090
|
|
sub_027E6090: ; 0x027E6090
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _027E6138 ; =0x027F8878
|
|
ldr r4, _027E613C ; =0x027F7878
|
|
ldr r5, [r0, #0x550]
|
|
bl sub_037FDD00
|
|
ldrh r1, [r5, #0xce]
|
|
cmp r1, #1
|
|
bne _027E60B8
|
|
bl sub_037FDD14
|
|
b _027E6130
|
|
_027E60B8:
|
|
mov r1, #1
|
|
strh r1, [r5, #0xce]
|
|
bl sub_037FDD14
|
|
bl sub_027E0700
|
|
movs r1, r0
|
|
moveq r0, #0
|
|
beq _027E60E8
|
|
mov r3, #0x1c
|
|
add r0, r4, #0x88
|
|
mov r2, #0
|
|
str r3, [r1]
|
|
bl sub_037FC6D4
|
|
_027E60E8:
|
|
cmp r0, #0
|
|
bne _027E6130
|
|
mov r0, #0
|
|
strh r0, [r5, #0xce]
|
|
add r0, r4, #0x1000
|
|
ldr r0, [r0, #0x54c]
|
|
cmp r0, #0
|
|
beq _027E6130
|
|
bl sub_03807380
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x1c
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
_027E6130:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E6138: .word 0x027F8878
|
|
_027E613C: .word 0x027F7878
|
|
arm_func_end sub_027E6090
|
|
|
|
arm_func_start sub_027E6140
|
|
sub_027E6140: ; 0x027E6140
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _027E62D8 ; =0x027F8878
|
|
mov r1, #0
|
|
ldr r4, [r0, #0x550]
|
|
mov r2, #1
|
|
strh r1, [r4, #0xce]
|
|
strh r2, [r4, #0x88]
|
|
ldrh r0, [r4, #0xc0]
|
|
sub r0, r0, #1
|
|
strh r0, [r4, #0xc0]
|
|
ldrh r0, [r4, #0xc0]
|
|
cmp r0, #0
|
|
bne _027E61AC
|
|
ldrh r1, [r4, #0xbe]
|
|
rsb r0, r2, #0x10000
|
|
cmp r1, r0
|
|
moveq r0, #4
|
|
streqh r0, [r4, #0xbe]
|
|
ldrh r0, [r4, #0xbe]
|
|
and r0, r0, #0xff
|
|
bl sub_027E0520
|
|
bl sub_027E059C
|
|
strh r0, [r4, #0xbc]
|
|
ldr r1, _027E62DC ; =0x0000FFFF
|
|
mov r0, #1
|
|
strh r1, [r4, #0xbe]
|
|
strh r0, [r4, #0xc0]
|
|
_027E61AC:
|
|
ldrh r0, [r4]
|
|
cmp r0, #9
|
|
bne _027E629C
|
|
bl sub_037FDD00
|
|
add r1, r4, #0x100
|
|
ldrh r1, [r1, #0x82]
|
|
cmp r1, #0
|
|
bne _027E61DC
|
|
mov r1, #0
|
|
strh r1, [r4, #0x62]
|
|
bl sub_037FDD14
|
|
b _027E62D0
|
|
_027E61DC:
|
|
ldrsh r2, [r4, #0x62]
|
|
mov r3, #1
|
|
cmp r2, #0
|
|
ldrgtsh r1, [r4, #0x64]
|
|
cmpgt r1, #0
|
|
movgt r3, #0
|
|
cmp r2, #0
|
|
movlt r1, #0
|
|
strlth r1, [r4, #0x62]
|
|
add r1, r4, #0x700
|
|
ldrsh r2, [r4, #0x62]
|
|
ldrsh r1, [r1, #0xc2]
|
|
add r1, r2, r1
|
|
strh r1, [r4, #0x62]
|
|
ldrsh r1, [r4, #0x62]
|
|
cmp r1, #0x100
|
|
movgt r1, #0x100
|
|
strgth r1, [r4, #0x62]
|
|
add r1, r4, #0x700
|
|
ldrh r1, [r1, #0xc4]
|
|
cmp r3, #0
|
|
strh r1, [r4, #0x64]
|
|
beq _027E6250
|
|
ldrsh r1, [r4, #0x62]
|
|
cmp r1, #0
|
|
ldrgtsh r1, [r4, #0x64]
|
|
cmpgt r1, #0
|
|
movgt r5, #1
|
|
bgt _027E6254
|
|
_027E6250:
|
|
mov r5, #0
|
|
_027E6254:
|
|
bl sub_037FDD14
|
|
cmp r5, #0
|
|
beq _027E6268
|
|
ldr r0, _027E62DC ; =0x0000FFFF
|
|
bl sub_027E6920
|
|
_027E6268:
|
|
add r0, r4, #0x700
|
|
ldrh r0, [r0, #0xc6]
|
|
cmp r0, #1
|
|
ldreqh r0, [r4, #0xa0]
|
|
subeq r0, r0, #1
|
|
streqh r0, [r4, #0xa0]
|
|
ldreqh r0, [r4, #0xa0]
|
|
cmpeq r0, #0
|
|
moveq r0, #1
|
|
streqh r0, [r4, #0x9e]
|
|
moveq r0, #0x3c
|
|
streqh r0, [r4, #0xa0]
|
|
b _027E62D0
|
|
_027E629C:
|
|
cmp r0, #0xa
|
|
bne _027E62D0
|
|
mov r5, #0
|
|
bl sub_037FDD00
|
|
ldr r1, [r4, #0x734]
|
|
cmp r1, #1
|
|
movne r1, r5
|
|
movne r5, #1
|
|
strneh r1, [r4, #0x60]
|
|
bl sub_037FDD14
|
|
cmp r5, #1
|
|
bne _027E62D0
|
|
bl sub_027E6428
|
|
_027E62D0:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E62D8: .word 0x027F8878
|
|
_027E62DC: .word 0x0000FFFF
|
|
arm_func_end sub_027E6140
|
|
|
|
arm_func_start sub_027E62E0
|
|
sub_027E62E0: ; 0x027E62E0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _027E6310 ; =0x027F8878
|
|
ldr r1, [r1, #0x550]
|
|
ldrh r1, [r1]
|
|
cmp r1, #9
|
|
bne _027E6308
|
|
ldr r0, [r0, #4]
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027E6920
|
|
_027E6308:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E6310: .word 0x027F8878
|
|
arm_func_end sub_027E62E0
|
|
|
|
arm_func_start sub_027E6314
|
|
sub_027E6314: ; 0x027E6314
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027E6338 ; =0x027F8878
|
|
ldr r0, [r0, #0x550]
|
|
ldrh r0, [r0]
|
|
cmp r0, #0xa
|
|
bne _027E6330
|
|
bl sub_027E6428
|
|
_027E6330:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E6338: .word 0x027F8878
|
|
arm_func_end sub_027E6314
|
|
|
|
arm_func_start sub_027E633C
|
|
sub_027E633C: ; 0x027E633C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _027E636C ; =0x027F8878
|
|
ldr r1, [r1, #0x550]
|
|
ldrh r1, [r1]
|
|
cmp r1, #9
|
|
bne _027E6364
|
|
ldr r0, [r0, #4]
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027E72C8
|
|
_027E6364:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E636C: .word 0x027F8878
|
|
arm_func_end sub_027E633C
|
|
|
|
arm_func_start sub_027E6370
|
|
sub_027E6370: ; 0x027E6370
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027E6420 ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
add r0, r4, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC888
|
|
add r1, r4, #0x2f8
|
|
mov r0, #0
|
|
mov r2, #0x400
|
|
bl sub_037FDF74
|
|
mov r3, #0
|
|
_027E639C:
|
|
add r0, r3, #1
|
|
mov r0, r0, lsl #0x10
|
|
add r1, r4, r3, lsl #5
|
|
mov r3, r0, lsr #0x10
|
|
add r0, r1, #0x200
|
|
strh r3, [r0, #0xf8]
|
|
cmp r3, #0x1f
|
|
blo _027E639C
|
|
ldr r2, _027E6424 ; =0x0000FFFF
|
|
add r0, r4, r3, lsl #5
|
|
add r0, r0, #0x200
|
|
strh r2, [r0, #0xf8]
|
|
add r0, r4, #0x600
|
|
mov ip, #0
|
|
strh ip, [r0, #0xf8]
|
|
strh r3, [r0, #0xfa]
|
|
_027E63DC:
|
|
add r1, r4, ip, lsl #2
|
|
add r0, r1, #0x700
|
|
strh r2, [r0, #0xc]
|
|
strh r2, [r0, #0xe]
|
|
add r0, r1, #0x600
|
|
add r1, ip, #1
|
|
strh r2, [r0, #0xfc]
|
|
mov r1, r1, lsl #0x10
|
|
mov ip, r1, lsr #0x10
|
|
strh r2, [r0, #0xfe]
|
|
cmp ip, #4
|
|
blo _027E63DC
|
|
add r0, r4, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC90C
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E6420: .word 0x027F8878
|
|
_027E6424: .word 0x0000FFFF
|
|
arm_func_end sub_027E6370
|
|
|
|
arm_func_start sub_027E6428
|
|
sub_027E6428: ; 0x027E6428
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x260
|
|
ldr r1, _027E6918 ; =0x027F8878
|
|
ldr fp, [r1, #0x550]
|
|
add r0, fp, #0x100
|
|
ldrh r0, [r0, #0x82]
|
|
cmp r0, #0
|
|
beq _027E690C
|
|
mov r0, #1
|
|
strh r0, [fp, #0x8a]
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0
|
|
strh r0, [sp, #0x5c]
|
|
ldr r8, [r1, #0x550]
|
|
add r1, sp, #0x5c
|
|
ldrh sb, [r8, #0x38]
|
|
str r1, [sp, #0x34]
|
|
add r1, sb, #0x1f
|
|
ldrh r2, [r8, #0x80]
|
|
bic r1, r1, #0x1f
|
|
ldr r7, [r8, #0x7c]
|
|
cmp r2, r1
|
|
blt _027E68B8
|
|
add r1, r8, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
cmp r1, #0x10
|
|
bhs _027E68B8
|
|
ldrh r1, [r8]
|
|
cmp r1, #9
|
|
beq _027E64AC
|
|
cmp r1, #0xa
|
|
streq r0, [sp, #0x14]
|
|
bne _027E68B8
|
|
_027E64AC:
|
|
ldr r0, [sp, #0x34]
|
|
mov r6, #0
|
|
strh r6, [r0]
|
|
mov r0, #1
|
|
cmp sb, #0
|
|
strlt r0, [sp, #0x14]
|
|
blt _027E68B8
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x14]
|
|
cmp r0, #0
|
|
beq _027E64EC
|
|
add r0, r8, #0x700
|
|
ldrh r0, [r0, #0xc6]
|
|
cmp r0, #0
|
|
strne r6, [sp, #0x18]
|
|
b _027E64F0
|
|
_027E64EC:
|
|
str r6, [sp, #0x18]
|
|
_027E64F0:
|
|
add r0, r8, #0x31c
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
mov r1, #1
|
|
add r0, r0, #0x400
|
|
str r1, [sp, #0x10]
|
|
bl sub_037FC888
|
|
ldr r0, [r8, #0x734]
|
|
cmp r0, #1
|
|
bne _027E6530
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC90C
|
|
mov r0, #1
|
|
str r0, [sp, #0x14]
|
|
b _027E68B8
|
|
_027E6530:
|
|
mov r0, #1
|
|
str r0, [r8, #0x734]
|
|
add r0, r8, #0x2f8
|
|
str r0, [sp, #0x1c]
|
|
mov r5, #0
|
|
b _027E6894
|
|
_027E6548:
|
|
add r0, r8, #0x30c
|
|
add r0, r0, #0x400
|
|
mov r1, r5, lsl #2
|
|
ldrh sl, [r0, r1]
|
|
add r0, r0, r5, lsl #2
|
|
str r0, [sp, #0x20]
|
|
add r0, r8, #0x2fc
|
|
add r0, r0, #0x400
|
|
add r0, r0, r5, lsl #2
|
|
str r0, [sp, #0x24]
|
|
ldr r0, [sp, #0x20]
|
|
str r0, [sp, #0x28]
|
|
ldr r0, _027E691C ; =0x0000FFFF
|
|
str r0, [sp, #0x2c]
|
|
str r0, [sp, #0x38]
|
|
str r0, [sp, #0x3c]
|
|
add r0, r8, #0x100
|
|
str r0, [sp, #0x40]
|
|
ldr r0, [sp, #0x2c]
|
|
sub r0, r0, #0x8000
|
|
str r0, [sp, #0x44]
|
|
ldr r0, [sp, #0x2c]
|
|
str r0, [sp, #0x48]
|
|
add r0, r8, #0x700
|
|
str r0, [sp, #0x4c]
|
|
ldr r0, [sp, #0x2c]
|
|
str r0, [sp, #0x50]
|
|
str r0, [sp, #0x54]
|
|
str r0, [sp, #0x58]
|
|
b _027E687C
|
|
_027E65C0:
|
|
ldr r0, [sp, #0x1c]
|
|
ldr r2, [sp, #0xc]
|
|
add r4, r0, sl, lsl #5
|
|
ldrh r0, [r4, #2]
|
|
mov r1, #1
|
|
str r0, [sp, #8]
|
|
tst r2, r1, lsl r0
|
|
bne _027E6840
|
|
ldr r0, [sp, #0x18]
|
|
cmp r0, #0
|
|
ldr r0, [sp, #8]
|
|
orr r0, r2, r1, lsl r0
|
|
str r0, [sp, #0xc]
|
|
ldrh r0, [r4, #6]
|
|
and r1, r0, r1
|
|
str r1, [sp, #0x30]
|
|
beq _027E660C
|
|
bics r1, r1, #1
|
|
bne _027E6840
|
|
_027E660C:
|
|
ldr r1, [sp, #8]
|
|
tst r1, #8
|
|
movne r1, #1
|
|
strne r1, [sp, #4]
|
|
moveq r1, #0
|
|
streq r1, [sp, #4]
|
|
ldr r1, [sp, #0x14]
|
|
cmp r1, #0
|
|
orrne r1, r0, #1
|
|
ldrne r0, [sp, #0x3c]
|
|
cmpne r1, r0
|
|
movne r0, #1
|
|
strne r0, [sp]
|
|
moveq r0, #0
|
|
streq r0, [sp]
|
|
ldrh r0, [r4, #0xe]
|
|
and r1, r0, #1
|
|
cmp r1, #1
|
|
addeq r0, r0, #1
|
|
streqh r0, [r4, #0xe]
|
|
ldr r0, [sp, #4]
|
|
ldr r1, [sp, #0x10]
|
|
cmp r0, #0
|
|
movne r0, #2
|
|
moveq r0, #0
|
|
cmp r1, #0
|
|
movne r3, #0
|
|
ldr r1, [sp]
|
|
moveq r3, #2
|
|
ldrh r2, [r4, #0xe]
|
|
cmp r1, #0
|
|
movne r1, #2
|
|
add r2, r2, r3
|
|
moveq r1, #0
|
|
add r0, r2, r0
|
|
add r0, r1, r0
|
|
cmp r0, sb
|
|
bgt _027E6840
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #0
|
|
streq r7, [sp, #0x34]
|
|
moveq r0, #0
|
|
streqh r0, [r7], #2
|
|
ldr r0, [sp, #0x34]
|
|
ldrh r2, [r4, #2]
|
|
ldrh r1, [r4, #0xe]
|
|
mov r2, r2, lsl #8
|
|
mov r1, r1, lsr #1
|
|
ldrh r0, [r0]
|
|
and r2, r2, #0xf00
|
|
and r1, r1, #0xff
|
|
orr r1, r2, r1
|
|
orr r1, r0, r1
|
|
ldr r0, [sp, #0x34]
|
|
addeq r6, r6, #2
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
ldrh r2, [r4, #0xe]
|
|
mov r1, r7
|
|
subeq sb, sb, #2
|
|
bl sub_037FDF9C
|
|
ldrh r1, [r4, #0xe]
|
|
ldr r0, [sp, #4]
|
|
add r6, r6, r1
|
|
cmp r0, #1
|
|
bic r0, r1, #1
|
|
add r7, r7, r0
|
|
sub sb, sb, r1
|
|
bne _027E6774
|
|
ldrh r0, [r4, #0x10]
|
|
tst r0, #1
|
|
moveq r2, r0, asr #1
|
|
beq _027E6760
|
|
ldr r0, [sp, #0x40]
|
|
ldrh r1, [r4, #2]
|
|
ldrh r0, [r0, #0x88]
|
|
mov r1, r1, lsl #0x1d
|
|
add r0, r8, r0, lsl #4
|
|
add r0, r0, r1, lsr #28
|
|
add r0, r0, #0x100
|
|
ldrh r2, [r0, #0xf8]
|
|
add r1, r2, #1
|
|
strh r1, [r0, #0xf8]
|
|
mov r0, r2, lsl #1
|
|
strh r0, [r4, #0x10]
|
|
_027E6760:
|
|
ldr r0, [sp, #0x44]
|
|
add r6, r6, #2
|
|
and r0, r2, r0
|
|
strh r0, [r7], #2
|
|
sub sb, sb, #2
|
|
_027E6774:
|
|
ldr r0, [sp]
|
|
cmp r0, #1
|
|
bne _027E67A4
|
|
ldr r0, [sp, #0x34]
|
|
add r6, r6, #2
|
|
ldrh r0, [r0]
|
|
sub sb, sb, #2
|
|
orr r1, r0, #0x1000
|
|
ldr r0, [sp, #0x34]
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, #6]
|
|
strh r0, [r7], #2
|
|
_027E67A4:
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #1
|
|
moveq r0, #0
|
|
streq r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x20]
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, sl
|
|
ldreq r1, [sp, #0x2c]
|
|
ldreq r0, [sp, #0x20]
|
|
streqh r1, [r0, #2]
|
|
ldrh r1, [r4]
|
|
ldr r0, [sp, #0x28]
|
|
strh r1, [r0]
|
|
ldr r0, [sp, #0x38]
|
|
strh r0, [r4]
|
|
ldr r0, [sp, #0x24]
|
|
ldrh r1, [r0, #2]
|
|
ldr r0, [sp, #0x48]
|
|
cmp r1, r0
|
|
ldreq r0, [sp, #0x24]
|
|
movne r1, r1, lsl #5
|
|
streqh sl, [r0]
|
|
ldrne r0, [sp, #0x1c]
|
|
strneh sl, [r0, r1]
|
|
ldr r0, [sp, #8]
|
|
mov r1, #1
|
|
mvn r1, r1, lsl r0
|
|
ldr r0, [sp, #0xc]
|
|
and r0, r0, r1
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x24]
|
|
strh sl, [r0, #2]
|
|
ldr r0, [sp, #0x30]
|
|
ldr sl, [sp, #0x2c]
|
|
strh r0, [r4, #0xa]
|
|
ldr r0, [sp, #0x4c]
|
|
ldrh r0, [r0, #0xc8]
|
|
cmp r0, #1
|
|
beq _027E68A4
|
|
_027E6840:
|
|
ldr r0, [sp, #0x50]
|
|
str sl, [sp, #0x2c]
|
|
cmp sl, r0
|
|
ldrne r0, [sp, #0x1c]
|
|
addne r0, r0, sl, lsl #5
|
|
strne r0, [sp, #0x28]
|
|
ldreq r0, [sp, #0x20]
|
|
streq r0, [sp, #0x28]
|
|
ldr r0, [sp, #0x54]
|
|
cmp sl, r0
|
|
ldrne r0, [sp, #0x1c]
|
|
movne r1, sl, lsl #5
|
|
ldrneh sl, [r0, r1]
|
|
ldreq r0, [sp, #0x20]
|
|
ldreqh sl, [r0]
|
|
_027E687C:
|
|
ldr r0, [sp, #0x58]
|
|
cmp sl, r0
|
|
beq _027E6890
|
|
cmp sb, #2
|
|
bgt _027E65C0
|
|
_027E6890:
|
|
add r5, r5, #1
|
|
_027E6894:
|
|
cmp r5, #4
|
|
bhs _027E68A4
|
|
cmp sb, #2
|
|
bgt _027E6548
|
|
_027E68A4:
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC90C
|
|
mov r0, #0
|
|
str r0, [sp, #0x14]
|
|
_027E68B8:
|
|
ldr r0, [sp, #0x14]
|
|
cmp r0, #1
|
|
moveq r0, #0
|
|
streqh r0, [fp, #0x8a]
|
|
beq _027E690C
|
|
ldr r0, [fp, #0x1c]
|
|
mov r1, r6, lsl #0x10
|
|
cmp r0, #1
|
|
ldreqh r0, [sp, #0x5c]
|
|
mov r1, r1, lsr #0x10
|
|
orreq r0, r0, #0x8000
|
|
streqh r0, [sp, #0x5c]
|
|
ldrh r2, [sp, #0x5c]
|
|
ldr r3, [fp, #0x7c]
|
|
add r0, sp, #0x60
|
|
bl sub_027E22AC
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, #0
|
|
cmpne r0, #8
|
|
movne r0, #0
|
|
strneh r0, [fp, #0x8a]
|
|
_027E690C:
|
|
add sp, sp, #0x260
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E6918: .word 0x027F8878
|
|
_027E691C: .word 0x0000FFFF
|
|
arm_func_end sub_027E6428
|
|
|
|
arm_func_start sub_027E6920
|
|
sub_027E6920: ; 0x027E6920
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x2c8
|
|
ldr r1, _027E72B8 ; =0x027F8878
|
|
str r0, [sp, #0x18]
|
|
ldr r7, [r1, #0x550]
|
|
bl sub_037FDD00
|
|
add r1, r7, #0x100
|
|
ldrh r1, [r1, #0x82]
|
|
ldrh r4, [r7, #0x86]
|
|
str r1, [sp, #0x74]
|
|
bl sub_037FDD14
|
|
mov r1, #0
|
|
strh r1, [sp, #0xc4]
|
|
ldrh r0, [r7, #0x88]
|
|
cmp r0, #1
|
|
ldreq r0, _027E72BC ; =0x0000FFFF
|
|
streq r0, [sp, #0x18]
|
|
streqh r1, [r7, #0x88]
|
|
ldrh r0, [r7, #0x9e]
|
|
cmp r0, #0
|
|
bne _027E7208
|
|
ldr r1, _027E72B8 ; =0x027F8878
|
|
ldrh r0, [r7, #0x3a]
|
|
ldr r8, [r1, #0x550]
|
|
str r0, [sp, #0x24]
|
|
add r0, sp, #0xc4
|
|
ldrh sb, [r8, #0x38]
|
|
str r0, [sp, #0x70]
|
|
add r0, sb, #0x1f
|
|
ldrh r1, [r8, #0x80]
|
|
bic r0, r0, #0x1f
|
|
cmp r1, r0
|
|
ldr r6, [r8, #0x7c]
|
|
movlt r0, #1
|
|
blt _027E6E48
|
|
add r0, r8, #0x100
|
|
ldrh r0, [r0, #0x88]
|
|
cmp r0, #0x10
|
|
movhs r0, #1
|
|
bhs _027E6E48
|
|
ldrh r0, [r8]
|
|
cmp r0, #9
|
|
moveq r0, #1
|
|
streq r0, [sp, #0x48]
|
|
beq _027E69EC
|
|
cmp r0, #0xa
|
|
moveq r0, #0
|
|
streq r0, [sp, #0x48]
|
|
beq _027E69EC
|
|
mov r0, #1
|
|
b _027E6E48
|
|
_027E69EC:
|
|
ldr r0, [sp, #0x70]
|
|
mov r5, #0
|
|
mov sl, r5
|
|
mov fp, r5
|
|
strh r5, [r0]
|
|
cmp sb, #0
|
|
movlt r0, #1
|
|
blt _027E6E48
|
|
ldr r0, [sp, #0x48]
|
|
str r4, [sp, #0x50]
|
|
cmp r0, #0
|
|
mov r0, #1
|
|
str r0, [sp, #0x4c]
|
|
beq _027E6A40
|
|
add r0, r8, #0x700
|
|
ldrh r0, [r0, #0xc6]
|
|
cmp r0, #0
|
|
ldrne r0, [sp, #0x74]
|
|
strne r5, [sp, #0x4c]
|
|
strne r0, [sp, #0x50]
|
|
b _027E6A44
|
|
_027E6A40:
|
|
str r5, [sp, #0x4c]
|
|
_027E6A44:
|
|
ldr r0, [sp, #0x18]
|
|
and r4, r4, r0
|
|
mov r0, #0
|
|
str r0, [sp, #0x40]
|
|
mov r0, #1
|
|
str r0, [sp, #0x44]
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC888
|
|
ldr r0, [r8, #0x734]
|
|
cmp r0, #1
|
|
bne _027E6A88
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC90C
|
|
mov r0, #1
|
|
b _027E6E48
|
|
_027E6A88:
|
|
mvn r0, r4
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #1
|
|
str r0, [r8, #0x734]
|
|
add r0, r8, #0x2f8
|
|
str r0, [sp, #0x54]
|
|
mov r0, #0
|
|
str r0, [sp, #0x58]
|
|
b _027E6E20
|
|
_027E6AAC:
|
|
ldr r0, [sp, #0x58]
|
|
mov r2, r0, lsl #2
|
|
add r0, r8, #0x30c
|
|
add r1, r0, #0x400
|
|
ldr r0, [sp, #0x58]
|
|
ldrh sl, [r1, r2]
|
|
add r0, r1, r0, lsl #2
|
|
str r0, [sp, #0x5c]
|
|
add r0, r8, #0x2fc
|
|
add r1, r0, #0x400
|
|
ldr r0, [sp, #0x58]
|
|
add r0, r1, r0, lsl #2
|
|
str r0, [sp, #0x60]
|
|
ldr r0, [sp, #0x5c]
|
|
str r0, [sp, #0x64]
|
|
ldr r0, _027E72BC ; =0x0000FFFF
|
|
str r0, [sp, #0x68]
|
|
str r0, [sp, #0x78]
|
|
str r0, [sp, #0x8c]
|
|
add r0, r8, #0x100
|
|
str r0, [sp, #0x90]
|
|
ldr r0, [sp, #0x68]
|
|
sub r0, r0, #0x8000
|
|
str r0, [sp, #0x94]
|
|
ldr r0, [sp, #0x68]
|
|
str r0, [sp, #0x98]
|
|
add r0, r8, #0x700
|
|
str r0, [sp, #0x9c]
|
|
ldr r0, [sp, #0x68]
|
|
str r0, [sp, #0xa0]
|
|
str r0, [sp, #0xa4]
|
|
str r0, [sp, #0xa8]
|
|
b _027E6E00
|
|
_027E6B30:
|
|
ldr r0, [sp, #0x54]
|
|
ldr r2, [sp, #0x40]
|
|
add r4, r0, sl, lsl #5
|
|
ldrh r0, [r4, #2]
|
|
mov r1, #1
|
|
str r0, [sp, #0x28]
|
|
tst r2, r1, lsl r0
|
|
bne _027E6DC4
|
|
ldr r0, [sp, #0x4c]
|
|
cmp r0, #0
|
|
ldr r0, [sp, #0x28]
|
|
orr r0, r2, r1, lsl r0
|
|
str r0, [sp, #0x40]
|
|
ldrh r0, [r4, #6]
|
|
ldr r1, [sp, #0x50]
|
|
and r1, r0, r1
|
|
str r1, [sp, #0x6c]
|
|
beq _027E6B88
|
|
mov r2, r1
|
|
ldr r1, [sp, #0x2c]
|
|
tst r2, r1
|
|
bne _027E6DC4
|
|
_027E6B88:
|
|
ldr r1, [sp, #0x28]
|
|
tst r1, #8
|
|
movne r1, #1
|
|
strne r1, [sp, #0x20]
|
|
moveq r1, #0
|
|
streq r1, [sp, #0x20]
|
|
ldr r1, [sp, #0x48]
|
|
cmp r1, #0
|
|
orrne r1, r0, #1
|
|
ldrne r0, [sp, #0x8c]
|
|
cmpne r1, r0
|
|
movne r0, #1
|
|
strne r0, [sp, #0x1c]
|
|
moveq r0, #0
|
|
streq r0, [sp, #0x1c]
|
|
ldrh r0, [r4, #0xe]
|
|
and r1, r0, #1
|
|
cmp r1, #1
|
|
addeq r0, r0, #1
|
|
streqh r0, [r4, #0xe]
|
|
ldr r0, [sp, #0x20]
|
|
ldr r1, [sp, #0x44]
|
|
cmp r0, #0
|
|
movne r0, #2
|
|
moveq r0, #0
|
|
cmp r1, #0
|
|
movne r3, #0
|
|
ldr r1, [sp, #0x1c]
|
|
moveq r3, #2
|
|
ldrh r2, [r4, #0xe]
|
|
cmp r1, #0
|
|
movne r1, #2
|
|
add r2, r2, r3
|
|
moveq r1, #0
|
|
add r0, r2, r0
|
|
add r0, r1, r0
|
|
cmp r0, sb
|
|
bgt _027E6DC4
|
|
ldr r0, [sp, #0x44]
|
|
cmp r0, #0
|
|
streq r6, [sp, #0x70]
|
|
moveq r0, #0
|
|
streqh r0, [r6], #2
|
|
ldr r0, [sp, #0x70]
|
|
ldrh r2, [r4, #2]
|
|
ldrh r1, [r4, #0xe]
|
|
mov r2, r2, lsl #8
|
|
mov r1, r1, lsr #1
|
|
ldrh r0, [r0]
|
|
and r2, r2, #0xf00
|
|
and r1, r1, #0xff
|
|
orr r1, r2, r1
|
|
orr r1, r0, r1
|
|
ldr r0, [sp, #0x70]
|
|
addeq fp, fp, #2
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
ldrh r2, [r4, #0xe]
|
|
mov r1, r6
|
|
subeq sb, sb, #2
|
|
bl sub_037FDF9C
|
|
ldrh r1, [r4, #0xe]
|
|
ldr r0, [sp, #0x20]
|
|
add fp, fp, r1
|
|
cmp r0, #1
|
|
bic r0, r1, #1
|
|
add r6, r6, r0
|
|
sub sb, sb, r1
|
|
bne _027E6CF0
|
|
ldrh r0, [r4, #0x10]
|
|
tst r0, #1
|
|
moveq r2, r0, asr #1
|
|
beq _027E6CDC
|
|
ldr r0, [sp, #0x90]
|
|
ldrh r1, [r4, #2]
|
|
ldrh r0, [r0, #0x88]
|
|
mov r1, r1, lsl #0x1d
|
|
add r0, r8, r0, lsl #4
|
|
add r0, r0, r1, lsr #28
|
|
add r0, r0, #0x100
|
|
ldrh r2, [r0, #0xf8]
|
|
add r1, r2, #1
|
|
strh r1, [r0, #0xf8]
|
|
mov r0, r2, lsl #1
|
|
strh r0, [r4, #0x10]
|
|
_027E6CDC:
|
|
ldr r0, [sp, #0x94]
|
|
add fp, fp, #2
|
|
and r0, r2, r0
|
|
strh r0, [r6], #2
|
|
sub sb, sb, #2
|
|
_027E6CF0:
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r0, #1
|
|
bne _027E6D20
|
|
ldr r0, [sp, #0x70]
|
|
add fp, fp, #2
|
|
ldrh r0, [r0]
|
|
sub sb, sb, #2
|
|
orr r1, r0, #0x1000
|
|
ldr r0, [sp, #0x70]
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, #6]
|
|
strh r0, [r6], #2
|
|
_027E6D20:
|
|
ldr r0, [sp, #0x44]
|
|
cmp r0, #1
|
|
moveq r0, #0
|
|
streq r0, [sp, #0x44]
|
|
ldr r0, [sp, #0x5c]
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, sl
|
|
ldreq r1, [sp, #0x68]
|
|
ldreq r0, [sp, #0x5c]
|
|
streqh r1, [r0, #2]
|
|
ldrh r1, [r4]
|
|
ldr r0, [sp, #0x64]
|
|
strh r1, [r0]
|
|
ldr r0, [sp, #0x78]
|
|
strh r0, [r4]
|
|
ldr r0, [sp, #0x60]
|
|
ldrh r1, [r0, #2]
|
|
ldr r0, [sp, #0x98]
|
|
cmp r1, r0
|
|
ldreq r0, [sp, #0x60]
|
|
movne r1, r1, lsl #5
|
|
streqh sl, [r0]
|
|
ldrne r0, [sp, #0x54]
|
|
strneh sl, [r0, r1]
|
|
ldr r0, [sp, #0x28]
|
|
mov r1, #1
|
|
mvn r1, r1, lsl r0
|
|
ldr r0, [sp, #0x40]
|
|
and r0, r0, r1
|
|
str r0, [sp, #0x40]
|
|
ldr r0, [sp, #0x60]
|
|
strh sl, [r0, #2]
|
|
ldr r0, [sp, #0x6c]
|
|
ldr sl, [sp, #0x68]
|
|
strh r0, [r4, #0xa]
|
|
ldrh r0, [r4, #4]
|
|
orr r5, r5, r0
|
|
ldr r0, [sp, #0x9c]
|
|
ldrh r0, [r0, #0xc8]
|
|
cmp r0, #1
|
|
beq _027E6E34
|
|
_027E6DC4:
|
|
ldr r0, [sp, #0xa0]
|
|
str sl, [sp, #0x68]
|
|
cmp sl, r0
|
|
ldrne r0, [sp, #0x54]
|
|
addne r0, r0, sl, lsl #5
|
|
strne r0, [sp, #0x64]
|
|
ldreq r0, [sp, #0x5c]
|
|
streq r0, [sp, #0x64]
|
|
ldr r0, [sp, #0xa4]
|
|
cmp sl, r0
|
|
ldrne r0, [sp, #0x54]
|
|
movne r1, sl, lsl #5
|
|
ldrneh sl, [r0, r1]
|
|
ldreq r0, [sp, #0x5c]
|
|
ldreqh sl, [r0]
|
|
_027E6E00:
|
|
ldr r0, [sp, #0xa8]
|
|
cmp sl, r0
|
|
beq _027E6E14
|
|
cmp sb, #2
|
|
bgt _027E6B30
|
|
_027E6E14:
|
|
ldr r0, [sp, #0x58]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x58]
|
|
_027E6E20:
|
|
ldr r0, [sp, #0x58]
|
|
cmp r0, #4
|
|
bhs _027E6E34
|
|
cmp sb, #2
|
|
bgt _027E6AAC
|
|
_027E6E34:
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
mov sl, fp
|
|
bl sub_037FC90C
|
|
mov r0, #0
|
|
_027E6E48:
|
|
cmp r0, #1
|
|
moveq r0, #0
|
|
streqh r0, [r7, #0x62]
|
|
streqh r0, [r7, #0x64]
|
|
beq _027E72AC
|
|
add r0, r7, #0x700
|
|
ldrh r1, [r0, #0xc6]
|
|
ldr r0, [sp, #0x24]
|
|
cmp r1, #1
|
|
add r4, r0, #2
|
|
ldrne r5, [sp, #0x18]
|
|
ldr r0, [sp, #0x74]
|
|
and r5, r5, r0
|
|
mov r0, r5
|
|
bl sub_03803830
|
|
ldr r1, [sp, #0x24]
|
|
add r1, r1, #0xc
|
|
mul r0, r1, r0
|
|
add r0, r0, #0x29
|
|
ldrh r1, [r7, #0x72]
|
|
bic r0, r0, #0x1f
|
|
cmp r1, r0
|
|
bge _027E71C8
|
|
ldr r0, _027E72B8 ; =0x027F8878
|
|
ldr sb, [r0, #0x550]
|
|
ldrh r0, [sb]
|
|
add r8, sb, #0x2f8
|
|
cmp r0, #9
|
|
moveq r4, #1
|
|
beq _027E6ECC
|
|
cmp r0, #0xa
|
|
bne _027E71B8
|
|
mov r4, #0
|
|
_027E6ECC:
|
|
add r0, sb, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC888
|
|
ldr r0, [sb, #0x734]
|
|
cmp r0, #0
|
|
bne _027E6EF4
|
|
add r0, sb, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC90C
|
|
b _027E71B8
|
|
_027E6EF4:
|
|
cmp r4, #0
|
|
moveq r0, #1
|
|
streq r0, [sp, #0x3c]
|
|
beq _027E6F18
|
|
bl sub_037FDD00
|
|
add r1, sb, #0x100
|
|
ldrh r1, [r1, #0x82]
|
|
str r1, [sp, #0x3c]
|
|
bl sub_037FDD14
|
|
_027E6F18:
|
|
mov r0, r5, lsl #0x10
|
|
mvn r0, r0, lsr #16
|
|
str r0, [sp, #0x30]
|
|
mov sl, #0
|
|
_027E6F28:
|
|
ldr r0, _027E72BC ; =0x0000FFFF
|
|
add fp, sb, #0x600
|
|
str r0, [sp, #0x38]
|
|
add r0, sb, #0x2fc
|
|
add r1, r0, #0x400
|
|
mov r0, sl, lsl #2
|
|
ldrh r5, [r1, r0]
|
|
ldr r0, [sp, #0x38]
|
|
add r6, r1, sl, lsl #2
|
|
str r0, [sp, #0x34]
|
|
ldr r0, [sp, #0x38]
|
|
str r0, [sp, #0x7c]
|
|
str r0, [sp, #0x80]
|
|
str r0, [sp, #0x84]
|
|
str r0, [sp, #0x88]
|
|
str r0, [sp, #0xac]
|
|
str r0, [sp, #0xb0]
|
|
add r0, sb, #0x100
|
|
str r0, [sp, #0xb4]
|
|
ldr r0, [sp, #0x38]
|
|
str r0, [sp, #0xb8]
|
|
str r0, [sp, #0xbc]
|
|
str r0, [sp, #0xc0]
|
|
b _027E7144
|
|
_027E6F88:
|
|
add r4, r8, r5, lsl #5
|
|
ldrh r1, [r4, #0xa]
|
|
ldr r0, [sp, #0x30]
|
|
ldrh r2, [r4, #8]
|
|
and r0, r1, r0
|
|
orr r0, r2, r0
|
|
strh r0, [r4, #8]
|
|
ldrh r0, [r4, #8]
|
|
ldrh r1, [r4, #6]
|
|
mvn r0, r0
|
|
and r0, r1, r0
|
|
strh r0, [r4, #6]
|
|
ldrh r1, [r4, #6]
|
|
ldr r0, [sp, #0x3c]
|
|
and r0, r1, r0
|
|
strh r0, [r4, #6]
|
|
mov r0, #0
|
|
strh r0, [r4, #0xa]
|
|
ldrh r0, [r4, #6]
|
|
cmp r0, #0
|
|
beq _027E7058
|
|
ldrh r0, [r4, #2]
|
|
tst r0, #8
|
|
ldreqh r0, [r4, #0x12]
|
|
cmpeq r0, #0
|
|
beq _027E7058
|
|
ldrh r0, [r4, #0x12]
|
|
cmp r0, #0
|
|
subne r0, r0, #1
|
|
strneh r0, [r4, #0x12]
|
|
ldrh r1, [r4]
|
|
ldr r0, [sp, #0xac]
|
|
cmp r1, r0
|
|
ldreq r0, [sp, #0x7c]
|
|
streqh r0, [r6, #2]
|
|
ldr r1, [sp, #0x38]
|
|
ldr r0, [sp, #0xb0]
|
|
cmp r1, r0
|
|
ldrh r0, [r4]
|
|
strh r0, [r6]
|
|
ldr r0, [sp, #0x80]
|
|
strh r0, [r4]
|
|
moveq r0, r5, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
streq r0, [sp, #0x34]
|
|
ldrne r0, [sp, #0x38]
|
|
movne r0, r0, lsl #5
|
|
strneh r5, [r8, r0]
|
|
mov r0, r5, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
str r0, [sp, #0x38]
|
|
b _027E7140
|
|
_027E7058:
|
|
bl sub_03807380
|
|
mov r1, #0x81
|
|
strh r1, [r0]
|
|
ldrh r1, [r4, #6]
|
|
ldr r3, [sp, #0xb4]
|
|
cmp r1, #0
|
|
moveq r1, #0
|
|
movne r1, #0xf
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x14
|
|
strh r1, [r0, #8]
|
|
ldrh r1, [r4, #2]
|
|
strh r1, [r0, #0xa]
|
|
ldrh r1, [r4, #4]
|
|
strh r1, [r0, #0xc]
|
|
ldrh r1, [r4, #6]
|
|
strh r1, [r0, #0xe]
|
|
ldrh r1, [r4, #8]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r1, [r4, #0xe]
|
|
strh r1, [r0, #0x18]
|
|
ldr r1, [r4, #0x14]
|
|
str r1, [r0, #0x14]
|
|
ldr r1, [r4, #0x18]
|
|
str r1, [r0, #0x1c]
|
|
ldr r1, [r4, #0x1c]
|
|
str r1, [r0, #0x20]
|
|
ldrh r1, [r4, #0x10]
|
|
strh r1, [r0, #0x1a]
|
|
ldrh r3, [r3, #0x88]
|
|
ldrh r1, [sb, #0x30]
|
|
cmp r3, #0
|
|
ldrh r2, [sb, #0x32]
|
|
moveq r3, r1
|
|
movne r3, r2
|
|
strh r3, [r0, #0x24]
|
|
ldr r3, [sp, #0xb4]
|
|
ldrh r3, [r3, #0x88]
|
|
cmp r3, #0
|
|
movne r2, r1
|
|
strh r2, [r0, #0x26]
|
|
bl sub_03807334
|
|
ldrh r1, [r4]
|
|
ldr r0, [sp, #0xb8]
|
|
cmp r1, r0
|
|
ldreq r0, [sp, #0x84]
|
|
streqh r0, [r6, #2]
|
|
ldrh r0, [r4]
|
|
strh r0, [r6]
|
|
ldr r0, [sp, #0x88]
|
|
strh r0, [r4]
|
|
ldrh r1, [fp, #0xfa]
|
|
ldr r0, [sp, #0xbc]
|
|
cmp r1, r0
|
|
streqh r5, [fp, #0xf8]
|
|
movne r0, r1, lsl #5
|
|
strneh r5, [r8, r0]
|
|
strh r5, [fp, #0xfa]
|
|
_027E7140:
|
|
ldrh r5, [r6]
|
|
_027E7144:
|
|
ldr r0, [sp, #0xc0]
|
|
cmp r5, r0
|
|
bne _027E6F88
|
|
ldr r2, _027E72BC ; =0x0000FFFF
|
|
ldr r0, [sp, #0x38]
|
|
cmp r0, r2
|
|
beq _027E7198
|
|
add r0, sb, sl, lsl #2
|
|
add r1, r0, #0x700
|
|
ldr r0, [sp, #0x38]
|
|
ldrh r3, [r1, #0xc]
|
|
mov r0, r0, lsl #5
|
|
strh r3, [r8, r0]
|
|
ldrh r0, [r1, #0xe]
|
|
cmp r0, r2
|
|
ldreq r0, [sp, #0x38]
|
|
streqh r0, [r1, #0xe]
|
|
add r0, sb, sl, lsl #2
|
|
add r1, r0, #0x700
|
|
ldr r0, [sp, #0x34]
|
|
strh r0, [r1, #0xc]
|
|
_027E7198:
|
|
add sl, sl, #1
|
|
cmp sl, #4
|
|
blt _027E6F28
|
|
add r0, sb, #0x31c
|
|
mov r1, #0
|
|
add r0, r0, #0x400
|
|
str r1, [sb, #0x734]
|
|
bl sub_037FC90C
|
|
_027E71B8:
|
|
mov r0, #0
|
|
strh r0, [r7, #0x62]
|
|
strh r0, [r7, #0x64]
|
|
b _027E72AC
|
|
_027E71C8:
|
|
ldrsh r0, [r7, #0x62]
|
|
cmp r0, #1
|
|
ldrnesh r0, [r7, #0x64]
|
|
cmpne r0, #1
|
|
movne r6, #0
|
|
bne _027E7248
|
|
ldrh r3, [r7, #0x40]
|
|
mov r0, sl
|
|
mov r1, r4
|
|
mov r2, r5
|
|
bl sub_027E7C14
|
|
ldrh r1, [sp, #0xc4]
|
|
mov r6, r0
|
|
orr r0, r1, #0x8000
|
|
strh r0, [sp, #0xc4]
|
|
b _027E7248
|
|
_027E7208:
|
|
mov r6, #0
|
|
strh r6, [r7, #0x9e]
|
|
ldrh r0, [sp, #0xc4]
|
|
ldr r5, [sp, #0x74]
|
|
bic r0, r0, #0x8000
|
|
strh r0, [sp, #0xc4]
|
|
mov sl, r6
|
|
ldr r4, _027E72C0 ; =0x000080D6
|
|
bl sub_037FDD00
|
|
ldrsh r1, [r7, #0x62]
|
|
add r1, r1, #1
|
|
strh r1, [r7, #0x62]
|
|
ldrsh r1, [r7, #0x64]
|
|
add r1, r1, #1
|
|
strh r1, [r7, #0x64]
|
|
bl sub_037FDD14
|
|
_027E7248:
|
|
mov r0, r5, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
str r0, [sp]
|
|
ldr r0, _027E72C4 ; =0x048080F8
|
|
str r6, [sp, #4]
|
|
ldrh r1, [r0]
|
|
mov r0, sl, lsl #0x10
|
|
str r1, [sp, #8]
|
|
mov r0, r0, lsr #0x10
|
|
str r0, [sp, #0xc]
|
|
ldrh r0, [sp, #0xc4]
|
|
mov r3, r4, lsl #0x10
|
|
str r0, [sp, #0x10]
|
|
ldr r2, [r7, #0x7c]
|
|
mov r1, #0
|
|
str r2, [sp, #0x14]
|
|
add r0, sp, #0xc8
|
|
mov r2, r1
|
|
mov r3, r3, lsr #0x10
|
|
bl sub_027E2314
|
|
strh r5, [r7, #0x68]
|
|
ldrh r0, [sp, #0xc4]
|
|
strh r0, [r7, #0x6a]
|
|
strh r4, [r7, #0x6c]
|
|
strh sl, [r7, #0x6e]
|
|
_027E72AC:
|
|
add sp, sp, #0x2c8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E72B8: .word 0x027F8878
|
|
_027E72BC: .word 0x0000FFFF
|
|
_027E72C0: .word 0x000080D6
|
|
_027E72C4: .word 0x048080F8
|
|
arm_func_end sub_027E6920
|
|
|
|
arm_func_start sub_027E72C8
|
|
sub_027E72C8: ; 0x027E72C8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x218
|
|
ldr r1, _027E73AC ; =0x027F8878
|
|
mov r4, r0
|
|
ldr r7, [r1, #0x550]
|
|
bl sub_037FDD00
|
|
bl sub_037FDD14
|
|
add r0, r7, #0x100
|
|
ldrh r0, [r0, #0x82]
|
|
ldr r1, _027E73B0 ; =0x048080F8
|
|
and r4, r4, r0
|
|
ldrh r8, [r7, #0x3a]
|
|
mov r0, r4
|
|
ldrh r5, [r1]
|
|
ldrh r6, [r7, #0x6a]
|
|
bl sub_03803830
|
|
add r1, r8, #0xc
|
|
mul r0, r1, r0
|
|
add r0, r0, #0x29
|
|
ldrh r1, [r7, #0x72]
|
|
bic r0, r0, #0x1f
|
|
cmp r1, r0
|
|
bge _027E7334
|
|
mov r0, #2
|
|
bl sub_037FC468
|
|
bl sub_027E1A54
|
|
b _027E73A0
|
|
_027E7334:
|
|
ldrsh r0, [r7, #0x62]
|
|
cmp r0, #1
|
|
ldrnesh r0, [r7, #0x64]
|
|
cmpne r0, #1
|
|
bicne r6, r6, #0x8000
|
|
movne r0, #0
|
|
bne _027E7368
|
|
ldrh r0, [r7, #0x6e]
|
|
ldrh r1, [r7, #0x6c]
|
|
ldrh r3, [r7, #0x40]
|
|
mov r2, r4
|
|
bl sub_027E7C14
|
|
orr r6, r6, #0x8000
|
|
_027E7368:
|
|
mov r1, r4, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
str r1, [sp]
|
|
stmib sp, {r0, r5}
|
|
mov r2, #0
|
|
mov r0, r6, lsl #0x10
|
|
str r2, [sp, #0xc]
|
|
mov r0, r0, lsr #0x10
|
|
str r0, [sp, #0x10]
|
|
ldr r1, _027E73B4 ; =0x0000800C
|
|
add r0, sp, #0x18
|
|
mov r3, r2
|
|
str r2, [sp, #0x14]
|
|
bl sub_027E2314
|
|
_027E73A0:
|
|
add sp, sp, #0x218
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E73AC: .word 0x027F8878
|
|
_027E73B0: .word 0x048080F8
|
|
_027E73B4: .word 0x0000800C
|
|
arm_func_end sub_027E72C8
|
|
|
|
arm_func_start sub_027E73B8
|
|
sub_027E73B8: ; 0x027E73B8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r4, _027E74E4 ; =0x027F8878
|
|
ldrh r8, [sp, #0x24]
|
|
ldr r4, [r4, #0x550]
|
|
mov r7, r0
|
|
add r0, r4, #0x30c
|
|
add r0, r0, #0x400
|
|
cmp r8, #0
|
|
add sb, r0, r1, lsl #2
|
|
mov r6, r2
|
|
mov r5, r3
|
|
add r8, r4, #0x2f8
|
|
moveq r0, #6
|
|
beq _027E74DC
|
|
ldrh r0, [sp, #0x24]
|
|
tst r6, #8
|
|
movne r1, #2
|
|
moveq r1, #0
|
|
add r0, r0, r1
|
|
cmp r0, #0x204
|
|
movgt r0, #6
|
|
bgt _027E74DC
|
|
add r0, r4, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC888
|
|
add r2, r4, #0x600
|
|
ldrh r1, [r2, #0xf8]
|
|
ldr r3, _027E74E8 ; =0x0000FFFF
|
|
cmp r1, r3
|
|
bne _027E7444
|
|
add r0, r4, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC90C
|
|
mov r0, #0xa
|
|
b _027E74DC
|
|
_027E7444:
|
|
mov r0, r1, lsl #5
|
|
ldrh ip, [r8, r0]
|
|
add r0, r8, r1, lsl #5
|
|
strh ip, [r2, #0xf8]
|
|
ldrh ip, [r2, #0xfa]
|
|
cmp ip, r1
|
|
streqh r3, [r2, #0xfa]
|
|
strh r6, [r0, #2]
|
|
strh r5, [r0, #4]
|
|
and r2, r5, r7
|
|
strh r2, [r0, #6]
|
|
mov r2, #0
|
|
strh r2, [r0, #8]
|
|
strh r2, [r0, #0xa]
|
|
ldr r3, [sp, #0x20]
|
|
ldrh r2, [sp, #0x24]
|
|
str r3, [r0, #0x14]
|
|
strh r2, [r0, #0xe]
|
|
ldr r3, [sp, #0x28]
|
|
ldr r2, [sp, #0x2c]
|
|
str r3, [r0, #0x18]
|
|
str r2, [r0, #0x1c]
|
|
ldr r3, _027E74E8 ; =0x0000FFFF
|
|
add r2, r4, #0x700
|
|
strh r3, [r0]
|
|
strh r3, [r0, #0x10]
|
|
ldrh r2, [r2, #0xca]
|
|
strh r2, [r0, #0x12]
|
|
ldrh r0, [sb, #2]
|
|
cmp r0, r3
|
|
streqh r1, [sb]
|
|
movne r0, r0, lsl #5
|
|
strneh r1, [r8, r0]
|
|
add r0, r4, #0x31c
|
|
add r0, r0, #0x400
|
|
strh r1, [sb, #2]
|
|
bl sub_037FC90C
|
|
mov r0, #2
|
|
_027E74DC:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E74E4: .word 0x027F8878
|
|
_027E74E8: .word 0x0000FFFF
|
|
arm_func_end sub_027E73B8
|
|
|
|
arm_func_start sub_027E74EC
|
|
sub_027E74EC: ; 0x027E74EC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x3c
|
|
ldr r2, _027E7814 ; =0x027F8878
|
|
str r0, [sp]
|
|
ldr r8, [r2, #0x550]
|
|
mov r5, r1
|
|
ldrh r1, [r8]
|
|
mov r0, #0
|
|
cmp r1, #9
|
|
add r4, r8, #0x2f8
|
|
str r0, [sp, #0xc]
|
|
moveq r6, #1
|
|
beq _027E752C
|
|
cmp r1, #0xa
|
|
moveq r6, r0
|
|
bne _027E7808
|
|
_027E752C:
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC888
|
|
ldr r0, [r8, #0x734]
|
|
cmp r0, #0
|
|
bne _027E7558
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC90C
|
|
mov r0, #0
|
|
b _027E7808
|
|
_027E7558:
|
|
cmp r6, #0
|
|
moveq r0, #1
|
|
streq r0, [sp, #0x10]
|
|
beq _027E757C
|
|
bl sub_037FDD00
|
|
add r1, r8, #0x100
|
|
ldrh r1, [r1, #0x82]
|
|
str r1, [sp, #0x10]
|
|
bl sub_037FDD14
|
|
_027E757C:
|
|
mvn r0, r5
|
|
str r0, [sp, #4]
|
|
mov sl, #0
|
|
_027E7588:
|
|
add r0, r8, #0x2fc
|
|
add r1, r0, #0x400
|
|
ldr sb, _027E7818 ; =0x0000FFFF
|
|
mov r0, sl, lsl #2
|
|
ldrh r5, [r1, r0]
|
|
add r0, r8, #0x100
|
|
str sb, [sp, #8]
|
|
add r6, r1, sl, lsl #2
|
|
str sb, [sp, #0x14]
|
|
str sb, [sp, #0x18]
|
|
str sb, [sp, #0x1c]
|
|
str sb, [sp, #0x20]
|
|
str sb, [sp, #0x24]
|
|
str sb, [sp, #0x28]
|
|
str r0, [sp, #0x2c]
|
|
str sb, [sp, #0x30]
|
|
add fp, r8, #0x600
|
|
str sb, [sp, #0x34]
|
|
str sb, [sp, #0x38]
|
|
b _027E779C
|
|
_027E75D8:
|
|
ldr r0, [sp]
|
|
add r7, r4, r5, lsl #5
|
|
cmp r0, #0
|
|
bne _027E7614
|
|
ldrh r1, [r7, #0xa]
|
|
ldr r0, [sp, #4]
|
|
ldrh r2, [r7, #8]
|
|
and r0, r1, r0
|
|
orr r0, r2, r0
|
|
strh r0, [r7, #8]
|
|
ldrh r0, [r7, #8]
|
|
ldrh r1, [r7, #6]
|
|
mvn r0, r0
|
|
and r0, r1, r0
|
|
strh r0, [r7, #6]
|
|
_027E7614:
|
|
ldrh r1, [r7, #6]
|
|
ldr r0, [sp, #0x10]
|
|
and r0, r1, r0
|
|
strh r0, [r7, #6]
|
|
mov r0, #0
|
|
strh r0, [r7, #0xa]
|
|
ldrh r0, [r7, #6]
|
|
cmp r0, #0
|
|
beq _027E76B0
|
|
ldrh r0, [r7, #2]
|
|
tst r0, #8
|
|
ldreqh r0, [r7, #0x12]
|
|
cmpeq r0, #0
|
|
beq _027E76B0
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
ldrh r0, [r7, #0x12]
|
|
cmp r0, #0
|
|
subne r0, r0, #1
|
|
strneh r0, [r7, #0x12]
|
|
ldrh r1, [r7]
|
|
ldr r0, [sp, #0x24]
|
|
cmp r1, r0
|
|
ldreq r0, [sp, #0x14]
|
|
streqh r0, [r6, #2]
|
|
ldr r0, [sp, #0x28]
|
|
cmp sb, r0
|
|
ldrh r0, [r7]
|
|
strh r0, [r6]
|
|
ldr r0, [sp, #0x18]
|
|
strh r0, [r7]
|
|
moveq r0, r5, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
streq r0, [sp, #8]
|
|
movne r0, sb, lsl #5
|
|
strneh r5, [r4, r0]
|
|
mov r0, r5, lsl #0x10
|
|
mov sb, r0, lsr #0x10
|
|
b _027E7798
|
|
_027E76B0:
|
|
bl sub_03807380
|
|
mov r1, #0x81
|
|
strh r1, [r0]
|
|
ldrh r1, [r7, #6]
|
|
ldr r3, [sp, #0x2c]
|
|
cmp r1, #0
|
|
moveq r1, #0
|
|
movne r1, #0xf
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x14
|
|
strh r1, [r0, #8]
|
|
ldrh r1, [r7, #2]
|
|
strh r1, [r0, #0xa]
|
|
ldrh r1, [r7, #4]
|
|
strh r1, [r0, #0xc]
|
|
ldrh r1, [r7, #6]
|
|
strh r1, [r0, #0xe]
|
|
ldrh r1, [r7, #8]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r1, [r7, #0xe]
|
|
strh r1, [r0, #0x18]
|
|
ldr r1, [r7, #0x14]
|
|
str r1, [r0, #0x14]
|
|
ldr r1, [r7, #0x18]
|
|
str r1, [r0, #0x1c]
|
|
ldr r1, [r7, #0x1c]
|
|
str r1, [r0, #0x20]
|
|
ldrh r1, [r7, #0x10]
|
|
strh r1, [r0, #0x1a]
|
|
ldrh r3, [r3, #0x88]
|
|
ldrh r1, [r8, #0x30]
|
|
cmp r3, #0
|
|
ldrh r2, [r8, #0x32]
|
|
moveq r3, r1
|
|
movne r3, r2
|
|
strh r3, [r0, #0x24]
|
|
ldr r3, [sp, #0x2c]
|
|
ldrh r3, [r3, #0x88]
|
|
cmp r3, #0
|
|
movne r2, r1
|
|
strh r2, [r0, #0x26]
|
|
bl sub_03807334
|
|
ldrh r1, [r7]
|
|
ldr r0, [sp, #0x30]
|
|
cmp r1, r0
|
|
ldreq r0, [sp, #0x1c]
|
|
streqh r0, [r6, #2]
|
|
ldrh r0, [r7]
|
|
strh r0, [r6]
|
|
ldr r0, [sp, #0x20]
|
|
strh r0, [r7]
|
|
ldrh r1, [fp, #0xfa]
|
|
ldr r0, [sp, #0x34]
|
|
cmp r1, r0
|
|
streqh r5, [fp, #0xf8]
|
|
movne r0, r1, lsl #5
|
|
strneh r5, [r4, r0]
|
|
strh r5, [fp, #0xfa]
|
|
_027E7798:
|
|
ldrh r5, [r6]
|
|
_027E779C:
|
|
ldr r0, [sp, #0x38]
|
|
cmp r5, r0
|
|
bne _027E75D8
|
|
ldr r1, _027E7818 ; =0x0000FFFF
|
|
cmp sb, r1
|
|
beq _027E77E4
|
|
add r0, r8, sl, lsl #2
|
|
add r0, r0, #0x700
|
|
ldrh r3, [r0, #0xc]
|
|
mov r2, sb, lsl #5
|
|
strh r3, [r4, r2]
|
|
ldrh r2, [r0, #0xe]
|
|
cmp r2, r1
|
|
streqh sb, [r0, #0xe]
|
|
add r0, r8, sl, lsl #2
|
|
add r1, r0, #0x700
|
|
ldr r0, [sp, #8]
|
|
strh r0, [r1, #0xc]
|
|
_027E77E4:
|
|
add sl, sl, #1
|
|
cmp sl, #4
|
|
blt _027E7588
|
|
add r0, r8, #0x31c
|
|
mov r1, #0
|
|
add r0, r0, #0x400
|
|
str r1, [r8, #0x734]
|
|
bl sub_037FC90C
|
|
ldr r0, [sp, #0xc]
|
|
_027E7808:
|
|
add sp, sp, #0x3c
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E7814: .word 0x027F8878
|
|
_027E7818: .word 0x0000FFFF
|
|
arm_func_end sub_027E74EC
|
|
|
|
arm_func_start sub_027E781C
|
|
sub_027E781C: ; 0x027E781C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x14
|
|
ldr r1, _027E7A08 ; =0x027F8878
|
|
mvn r2, r0
|
|
ldr sb, [r1, #0x550]
|
|
add r0, sb, #0x100
|
|
ldrh r1, [r0, #0x82]
|
|
add r0, sb, #0x31c
|
|
add r0, r0, #0x400
|
|
add r5, sb, #0x2f8
|
|
and fp, r2, r1
|
|
bl sub_037FC888
|
|
add r0, sb, #0x30c
|
|
add r0, r0, #0x400
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
_027E7860:
|
|
add r0, sb, #0x100
|
|
str r0, [sp, #0x10]
|
|
mov r6, #0
|
|
add r4, sb, #0x600
|
|
_027E7870:
|
|
ldr r0, [sp, #8]
|
|
mov r1, r6, lsl #2
|
|
add r7, r0, r6, lsl #2
|
|
ldrh sl, [r0, r1]
|
|
ldr r0, _027E7A0C ; =0x0000FFFF
|
|
str r7, [sp, #4]
|
|
str r0, [sp]
|
|
b _027E79C4
|
|
_027E7890:
|
|
add r8, r5, sl, lsl #5
|
|
ldrh r0, [r8, #6]
|
|
and r0, r0, fp
|
|
strh r0, [r8, #6]
|
|
ldrh r0, [r8, #0xa]
|
|
and r0, r0, fp
|
|
strh r0, [r8, #0xa]
|
|
ldrh r0, [r8, #6]
|
|
cmp r0, #0
|
|
bne _027E7998
|
|
bl sub_03807380
|
|
mov r1, #0x81
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x14
|
|
strh r1, [r0, #8]
|
|
ldrh r1, [r8, #2]
|
|
ldr r3, [sp, #0x10]
|
|
strh r1, [r0, #0xa]
|
|
ldrh r1, [r8, #4]
|
|
strh r1, [r0, #0xc]
|
|
ldrh r1, [r8, #6]
|
|
strh r1, [r0, #0xe]
|
|
ldrh r1, [r8, #8]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r1, [r8, #0xe]
|
|
strh r1, [r0, #0x18]
|
|
ldr r1, [r8, #0x14]
|
|
str r1, [r0, #0x14]
|
|
ldr r1, [r8, #0x18]
|
|
str r1, [r0, #0x1c]
|
|
ldr r1, [r8, #0x1c]
|
|
str r1, [r0, #0x20]
|
|
ldrh r1, [r8, #0x10]
|
|
strh r1, [r0, #0x1a]
|
|
ldrh r3, [r3, #0x88]
|
|
ldrh r1, [sb, #0x30]
|
|
cmp r3, #0
|
|
ldrh r2, [sb, #0x32]
|
|
moveq r3, r1
|
|
movne r3, r2
|
|
strh r3, [r0, #0x24]
|
|
ldr r3, [sp, #0x10]
|
|
ldrh r3, [r3, #0x88]
|
|
cmp r3, #0
|
|
movne r2, r1
|
|
strh r2, [r0, #0x26]
|
|
bl sub_03807334
|
|
ldrh r1, [r8]
|
|
ldr r0, _027E7A0C ; =0x0000FFFF
|
|
cmp r1, r0
|
|
ldreq r0, [sp]
|
|
streqh r0, [r7, #2]
|
|
ldrh r1, [r8]
|
|
ldr r0, [sp, #4]
|
|
strh r1, [r0]
|
|
ldr r0, _027E7A0C ; =0x0000FFFF
|
|
strh r0, [r8]
|
|
ldrh r1, [r4, #0xfa]
|
|
cmp r1, r0
|
|
streqh sl, [r4, #0xf8]
|
|
movne r0, r1, lsl #5
|
|
strneh sl, [r5, r0]
|
|
strh sl, [r4, #0xfa]
|
|
ldr sl, [sp]
|
|
_027E7998:
|
|
ldr r0, _027E7A0C ; =0x0000FFFF
|
|
str sl, [sp]
|
|
cmp sl, r0
|
|
addne r0, r5, sl, lsl #5
|
|
strne r0, [sp, #4]
|
|
ldr r0, _027E7A0C ; =0x0000FFFF
|
|
streq r7, [sp, #4]
|
|
cmp sl, r0
|
|
movne r0, sl, lsl #5
|
|
ldrneh sl, [r5, r0]
|
|
ldreqh sl, [r7]
|
|
_027E79C4:
|
|
ldr r0, _027E7A0C ; =0x0000FFFF
|
|
cmp sl, r0
|
|
bne _027E7890
|
|
add r6, r6, #1
|
|
cmp r6, #4
|
|
blt _027E7870
|
|
ldr r0, [sp, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0xc]
|
|
cmp r0, #2
|
|
blt _027E7860
|
|
add r0, sb, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC90C
|
|
add sp, sp, #0x14
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E7A08: .word 0x027F8878
|
|
_027E7A0C: .word 0x0000FFFF
|
|
arm_func_end sub_027E781C
|
|
|
|
arm_func_start sub_027E7A10
|
|
sub_027E7A10: ; 0x027E7A10
|
|
stmdb sp!, {r0, r1, r2, r3}
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0xc
|
|
ldr r4, _027E7C0C ; =0x027F8878
|
|
ldr r1, [sp, #0x40]
|
|
ldr r5, [r4, #0x550]
|
|
movs sb, r3
|
|
str r1, [sp, #0x40]
|
|
mov sl, r0
|
|
str r2, [sp]
|
|
beq _027E7BFC
|
|
cmp sb, #0x204
|
|
bhi _027E7BFC
|
|
add r4, r5, #0x100
|
|
ldrh r0, [r4, #0x88]
|
|
cmp sl, r0
|
|
beq _027E7BFC
|
|
cmp sl, #0x10
|
|
bhs _027E7BFC
|
|
tst sb, #1
|
|
bne _027E7BFC
|
|
add r0, r5, #0x1f8
|
|
add r8, r0, sl, lsl #4
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
b _027E7BF4
|
|
_027E7A78:
|
|
ldr r0, [sp, #8]
|
|
ldr r7, _027E7C10 ; =0x0000FFFF
|
|
cmp r0, #1
|
|
addeq r1, sp, #0x34
|
|
moveq r0, #0
|
|
ldrne r1, [sp]
|
|
streq r0, [sp, #8]
|
|
movne r0, r1
|
|
addne r0, r0, #2
|
|
ldrh r1, [r1]
|
|
strne r0, [sp]
|
|
mov r0, r1, lsl #0x18
|
|
subne sb, sb, #2
|
|
movs r6, r0, lsr #0x17
|
|
moveq r6, #0x200
|
|
tst r1, #0x1000
|
|
movne r2, #1
|
|
moveq r2, #0
|
|
tst r1, #0x800
|
|
movne r3, #1
|
|
moveq r3, #0
|
|
cmp r2, #0
|
|
movne fp, #2
|
|
moveq fp, #0
|
|
cmp r3, #0
|
|
movne r0, #2
|
|
moveq r0, #0
|
|
add r0, r6, r0
|
|
add r0, r0, fp
|
|
subs sb, sb, r0
|
|
bmi _027E7BFC
|
|
and r1, r1, #0xf00
|
|
cmp r3, #1
|
|
mov r1, r1, lsl #8
|
|
ldr r3, [sp]
|
|
mov fp, r1, lsr #0x10
|
|
ldr r1, [sp]
|
|
add r0, r3, r0
|
|
str r1, [sp, #4]
|
|
add r1, r1, r6
|
|
str r0, [sp]
|
|
bne _027E7B5C
|
|
mov r0, fp, lsl #0x1d
|
|
mov r0, r0, lsr #0x1c
|
|
ldrh r3, [r8, r0]
|
|
ldrh r7, [r1], #2
|
|
tst r3, #1
|
|
movne r3, r7, lsl #1
|
|
strneh r3, [r8, r0]
|
|
bne _027E7B5C
|
|
mov r7, r7, lsl #1
|
|
sub r3, r3, r7
|
|
mov r3, r3, lsl #0x10
|
|
mov r3, r3, lsr #0x10
|
|
cmp r3, #0x100
|
|
blo _027E7BF4
|
|
strh r7, [r8, r0]
|
|
_027E7B5C:
|
|
cmp r2, #1
|
|
bne _027E7B78
|
|
ldrh r2, [r1]
|
|
ldrh r1, [r4, #0x88]
|
|
mov r0, #1
|
|
tst r2, r0, lsl r1
|
|
beq _027E7BF4
|
|
_027E7B78:
|
|
cmp r6, #0
|
|
ble _027E7BF4
|
|
bl sub_03807380
|
|
mov r1, #0x82
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x15
|
|
strh r1, [r0, #4]
|
|
ldr r1, [sp, #0x40]
|
|
strh fp, [r0, #6]
|
|
str r1, [r0, #8]
|
|
ldr r1, [sp, #4]
|
|
str r1, [r0, #0xc]
|
|
strh r6, [r0, #0x10]
|
|
strh sl, [r0, #0x12]
|
|
ldrh r1, [r4, #0x88]
|
|
strh r1, [r0, #0x20]
|
|
strh r7, [r0, #0x1a]
|
|
ldrh r1, [r4, #0x88]
|
|
ldrh r2, [r5, #0x30]
|
|
cmp r1, #0
|
|
ldrh r3, [r5, #0x32]
|
|
moveq r1, r2
|
|
movne r1, r3
|
|
strh r1, [r0, #0x40]
|
|
ldrh r1, [r4, #0x88]
|
|
cmp r1, #0
|
|
movne r3, r2
|
|
strh r3, [r0, #0x42]
|
|
bl sub_03807334
|
|
_027E7BF4:
|
|
cmp sb, #0
|
|
bgt _027E7A78
|
|
_027E7BFC:
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
add sp, sp, #0x10
|
|
bx lr
|
|
.align 2, 0
|
|
_027E7C0C: .word 0x027F8878
|
|
_027E7C10: .word 0x0000FFFF
|
|
arm_func_end sub_027E7A10
|
|
|
|
arm_func_start sub_027E7C14
|
|
sub_027E7C14: ; 0x027E7C14
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r1
|
|
mov r5, r0
|
|
tst r6, #0x8000
|
|
ldrne r0, _027E7CB0 ; =0x00007FFF
|
|
mov r4, r3
|
|
andne r6, r6, r0
|
|
addeq r0, r6, #0x1c
|
|
moveq r0, r0, lsl #2
|
|
addeq r6, r0, #0x66
|
|
mov r0, r2
|
|
bl sub_03803830
|
|
mul r2, r6, r0
|
|
ldr r1, _027E7CB4 ; =0x04000006
|
|
add r0, r5, #0x22
|
|
mov r3, r0, lsl #2
|
|
ldrh r1, [r1]
|
|
sub r0, r4, #2
|
|
add r3, r3, #0x60
|
|
add r2, r2, #0x388
|
|
add r4, r3, r2
|
|
subs r3, r0, r1
|
|
bpl _027E7C7C
|
|
_027E7C70:
|
|
add r0, r3, #7
|
|
adds r3, r0, #0x100
|
|
bmi _027E7C70
|
|
_027E7C7C:
|
|
ldr r2, _027E7CB8 ; =0x66666667
|
|
rsb r1, r3, r3, lsl #7
|
|
mov r0, r1, lsr #0x1f
|
|
smull r1, r3, r2, r1
|
|
add r3, r0, r3, asr #3
|
|
mov r0, #0xa
|
|
mul r0, r3, r0
|
|
cmp r0, r4
|
|
movlo r3, #0
|
|
mov r0, r3, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E7CB0: .word 0x00007FFF
|
|
_027E7CB4: .word 0x04000006
|
|
_027E7CB8: .word 0x66666667
|
|
arm_func_end sub_027E7C14
|
|
|
|
arm_func_start sub_027E7CBC
|
|
sub_027E7CBC: ; 0x027E7CBC
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x280
|
|
ldr r1, _027E7D48 ; =0x027F8878
|
|
ldr r2, [r0, #4]
|
|
ldr r4, [r1, #0x550]
|
|
add r0, sp, #0
|
|
strh r2, [r4, #0xf6]
|
|
add r1, r4, #0xe8
|
|
bl sub_027E030C
|
|
ldrh r1, [r4, #0xec]
|
|
add r0, sp, #0x80
|
|
add r1, r1, #0x10
|
|
mov r1, r1, lsl #0x10
|
|
add r2, sp, #0
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_027E27B8
|
|
mov r4, r0
|
|
bl sub_03807380
|
|
mov r1, #0x21
|
|
strh r1, [r0]
|
|
ldrh r1, [r4, #4]
|
|
cmp r1, #0
|
|
moveq r1, #0
|
|
streqh r1, [r0, #2]
|
|
beq _027E7D38
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
add r1, r1, #0x244
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r4, #4]
|
|
strh r1, [r0, #6]
|
|
_027E7D38:
|
|
bl sub_03807334
|
|
add sp, sp, #0x280
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E7D48: .word 0x027F8878
|
|
arm_func_end sub_027E7CBC
|
|
|
|
arm_func_start sub_027E7D4C
|
|
sub_027E7D4C: ; 0x027E7D4C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x208
|
|
add r1, sp, #0
|
|
add r0, r0, #4
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
mov r8, #0
|
|
add r7, sp, #8
|
|
add r6, sp, #0
|
|
mov r5, #0x13
|
|
b _027E7DA8
|
|
_027E7D78:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl sub_027E1FCC
|
|
mov r4, r0
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _027E7DB0
|
|
cmp r0, #7
|
|
cmpne r0, #0xc
|
|
bne _027E7DB0
|
|
add r8, r8, #1
|
|
_027E7DA8:
|
|
cmp r8, #2
|
|
blt _027E7D78
|
|
_027E7DB0:
|
|
bl sub_03807380
|
|
mov r1, #0x22
|
|
strh r1, [r0]
|
|
ldrh r1, [r4, #4]
|
|
cmp r1, #0
|
|
moveq r1, #0
|
|
streqh r1, [r0, #2]
|
|
beq _027E7DE8
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
mov r1, #5
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r4, #4]
|
|
strh r1, [r0, #6]
|
|
_027E7DE8:
|
|
bl sub_03807334
|
|
add sp, sp, #0x208
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
arm_func_end sub_027E7D4C
|
|
|
|
arm_func_start sub_027E7DF8
|
|
sub_027E7DF8: ; 0x027E7DF8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, [r0, #4]
|
|
ldr r1, _027E7E44 ; =0x027F8878
|
|
str r3, [r1, #0x54c]
|
|
ldr r2, [r0, #8]
|
|
str r2, [r1, #0x550]
|
|
str r2, [r3]
|
|
ldr r1, [r0, #0xc]
|
|
str r1, [r3, #8]
|
|
ldr r0, [r0, #0x10]
|
|
bl sub_027E7E48
|
|
bl sub_03807380
|
|
mov r1, #3
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E7E44: .word 0x027F8878
|
|
arm_func_end sub_027E7DF8
|
|
|
|
arm_func_start sub_027E7E48
|
|
sub_027E7E48: ; 0x027E7E48
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r1, _027E7FE8 ; =0x027F8878
|
|
mov r8, r0
|
|
ldr r7, [r1, #0x550]
|
|
ldr r4, [r1, #0x54c]
|
|
mov r5, #0
|
|
bl sub_037FDD00
|
|
ldr r1, [r7, #0xc]
|
|
mov r6, r0
|
|
cmp r1, #1
|
|
bne _027E7E88
|
|
mov r0, r5
|
|
str r0, [r7, #0xc]
|
|
mov r5, #1
|
|
bl sub_027E5B8C
|
|
bl sub_027E0640
|
|
_027E7E88:
|
|
add ip, r7, #0x100
|
|
mov r1, #0
|
|
strh r1, [ip, #0x82]
|
|
strh r1, [r7, #0x86]
|
|
str r1, [r7, #0x14]
|
|
str r1, [r7, #0x10]
|
|
str r1, [r7, #0x1c]
|
|
strh r1, [r7, #0xce]
|
|
strh r1, [r7, #0xc2]
|
|
mov r0, #1
|
|
strh r0, [r7, #0x58]
|
|
strh r0, [r7, #0x5a]
|
|
mov r0, #6
|
|
strh r0, [r7, #0x5c]
|
|
strh r1, [r7, #0x98]
|
|
strh r1, [r7, #0x92]
|
|
strh r1, [r7, #0x94]
|
|
strh r1, [r7, #0x9a]
|
|
strh r1, [r7, #0x9c]
|
|
ldrh r0, [r7, #0x58]
|
|
add r3, r7, #0x700
|
|
strh r0, [r3, #0xc0]
|
|
ldrh r2, [r7, #0x5a]
|
|
add r0, r7, #0x19c
|
|
strh r2, [r3, #0xc2]
|
|
ldrh lr, [r7, #0x5c]
|
|
mov r2, #0x50
|
|
strh lr, [r3, #0xc4]
|
|
ldrh lr, [r7, #0x98]
|
|
strh lr, [r3, #0xca]
|
|
ldrh lr, [r7, #0x92]
|
|
strh lr, [r3, #0xc6]
|
|
ldrh lr, [r7, #0x94]
|
|
strh lr, [r3, #0xc8]
|
|
ldrh lr, [r7, #0x9a]
|
|
strh lr, [r3, #0xcc]
|
|
str r1, [r7, #0x198]
|
|
strh r1, [ip, #0x96]
|
|
bl sub_037FE070
|
|
bl sub_027E076C
|
|
mov r0, #0x104
|
|
strh r0, [r7, #0x40]
|
|
mov r0, #0xf0
|
|
strh r0, [r7, #0x42]
|
|
mov r0, #0x3e8
|
|
strh r0, [r7, #0x44]
|
|
mov r1, #0
|
|
ldr r0, _027E7FEC ; =0x0000020B
|
|
strh r1, [r7, #0x46]
|
|
str r0, [r7, #0x48]
|
|
str r1, [r7, #0x4c]
|
|
str r1, [r7, #0x50]
|
|
str r1, [r7, #0x54]
|
|
strh r1, [r7, #0xc6]
|
|
add r0, r7, #0x100
|
|
mov r1, #1
|
|
strh r1, [r0, #0xee]
|
|
mov r0, r6
|
|
str r8, [r7, #0xc8]
|
|
bl sub_037FDD14
|
|
cmp r5, #0
|
|
beq _027E7F88
|
|
ldr r0, _027E7FF0 ; =0x0000FFFF
|
|
bl sub_027E781C
|
|
_027E7F88:
|
|
mov r2, #0
|
|
mov r1, #0x8000
|
|
_027E7F90:
|
|
add r0, r4, r2, lsl #4
|
|
add r2, r2, #1
|
|
str r1, [r0, #0xd0]
|
|
cmp r2, #0x20
|
|
blt _027E7F90
|
|
add r1, r7, #0x1f8
|
|
mov r0, #1
|
|
mov r2, #0x100
|
|
bl sub_037FDF74
|
|
bl sub_027E1C9C
|
|
add r0, r7, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_037FC870
|
|
bl sub_027E5B78
|
|
tst r8, #2
|
|
bne _027E7FD8
|
|
mov r0, #0xf
|
|
bl sub_0380521C
|
|
_027E7FD8:
|
|
mov r0, #1
|
|
strh r0, [r7]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E7FE8: .word 0x027F8878
|
|
_027E7FEC: .word 0x0000020B
|
|
_027E7FF0: .word 0x0000FFFF
|
|
arm_func_end sub_027E7E48
|
|
|
|
arm_func_start sub_027E7FF4
|
|
sub_027E7FF4: ; 0x027E7FF4
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027E8058 ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
ldrh r0, [r4]
|
|
cmp r0, #1
|
|
beq _027E8028
|
|
bl sub_03807380
|
|
mov r1, #4
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
b _027E8050
|
|
_027E8028:
|
|
mov r0, #1
|
|
bl sub_0380521C
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
bl sub_03807380
|
|
mov r1, #4
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E8050:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8058: .word 0x027F8878
|
|
arm_func_end sub_027E7FF4
|
|
|
|
arm_func_start sub_027E805C
|
|
sub_027E805C: ; 0x027E805C
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r0, _027E8100 ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
ldrh r0, [r4]
|
|
cmp r0, #1
|
|
beq _027E8094
|
|
bl sub_03807380
|
|
mov r1, #5
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
b _027E80F4
|
|
_027E8094:
|
|
add r0, sp, #2
|
|
add r1, sp, #0
|
|
bl sub_027E8104
|
|
cmp r0, #0
|
|
bne _027E80D4
|
|
bl sub_03807380
|
|
mov r1, #5
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
ldrh r1, [sp, #2]
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [sp]
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E80F4
|
|
_027E80D4:
|
|
mov r0, #2
|
|
strh r0, [r4]
|
|
bl sub_03807380
|
|
mov r1, #5
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E80F4:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8100: .word 0x027F8878
|
|
arm_func_end sub_027E805C
|
|
|
|
arm_func_start sub_027E8104
|
|
sub_027E8104: ; 0x027E8104
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r2, _027E82EC ; =0x027F8878
|
|
mov r7, r0
|
|
add r0, sp, #0
|
|
mov r6, r1
|
|
ldr r5, [r2, #0x550]
|
|
bl sub_027E28C8
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E8148
|
|
mov r1, #0x304
|
|
strh r1, [r7]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r1, [r6]
|
|
b _027E82E0
|
|
_027E8148:
|
|
add r0, sp, #0
|
|
bl sub_027E2898
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E8174
|
|
ldr r1, _027E82F0 ; =0x00000302
|
|
strh r1, [r7]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r1, [r6]
|
|
b _027E82E0
|
|
_027E8174:
|
|
ldr r2, _027E82F4 ; =0x04808124
|
|
mov r0, #0xc8
|
|
strh r0, [r2]
|
|
mov r0, #0x7d0
|
|
strh r0, [r2, #4]
|
|
ldr r1, _027E82F8 ; =0x00000202
|
|
add r0, sp, #0
|
|
strh r1, [r2, #0x2c]
|
|
bl sub_027E2854
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E81BC
|
|
ldr r1, _027E82FC ; =0x00000283
|
|
strh r1, [r7]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r1, [r6]
|
|
b _027E82E0
|
|
_027E81BC:
|
|
ldrh r2, [r0, #6]
|
|
add r0, r5, #0x100
|
|
mov r1, r2, lsl #0xf
|
|
strh r2, [r0, #0xf4]
|
|
mov r0, r1, lsr #0x10
|
|
bl sub_038073D4
|
|
add r1, r5, #0x100
|
|
strh r0, [r1, #0xf6]
|
|
ldr r1, _027E8300 ; =0x0000FFFF
|
|
add r0, sp, #0
|
|
mov r2, #0x28
|
|
mov r3, #5
|
|
bl sub_027E25E0
|
|
ldr r1, _027E8304 ; =0x001FF621
|
|
mov r0, #0
|
|
str r1, [r5, #0x7b8]
|
|
str r0, [r5, #0x7bc]
|
|
add r1, r5, #0x100
|
|
mov r2, #2
|
|
strh r2, [r1, #0xec]
|
|
mov r2, #1
|
|
add r0, sp, #0
|
|
strh r2, [r1, #0xee]
|
|
bl sub_027E28F4
|
|
mov r4, r0
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _027E8244
|
|
ldr r1, _027E8308 ; =0x00000306
|
|
mov r0, #0
|
|
strh r1, [r7]
|
|
ldrh r1, [r4, #4]
|
|
strh r1, [r6]
|
|
b _027E82E0
|
|
_027E8244:
|
|
add r0, r4, #6
|
|
add r1, r5, #0x20
|
|
mov r2, #8
|
|
bl sub_037FDF9C
|
|
ldrh r1, [r4, #0xe]
|
|
add r0, sp, #0
|
|
strh r1, [r5, #0x28]
|
|
ldrh r1, [r4, #0x10]
|
|
strh r1, [r5, #0x2c]
|
|
ldrh r1, [r4, #0x12]
|
|
strh r1, [r5, #0x2e]
|
|
ldrh r1, [r4, #0x14]
|
|
strh r1, [r5, #0x2a]
|
|
bl sub_027E283C
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E82A0
|
|
ldr r1, _027E830C ; =0x00000281
|
|
strh r1, [r7]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r1, [r6]
|
|
b _027E82E0
|
|
_027E82A0:
|
|
add r0, r0, #6
|
|
add r1, r5, #0xe0
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
add r0, sp, #0
|
|
mov r1, #1
|
|
bl sub_027E26A4
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
moveq r0, #1
|
|
beq _027E82E0
|
|
ldr r1, _027E8310 ; =0x00000215
|
|
strh r1, [r7]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r1, [r6]
|
|
_027E82E0:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E82EC: .word 0x027F8878
|
|
_027E82F0: .word 0x00000302
|
|
_027E82F4: .word 0x04808124
|
|
_027E82F8: .word 0x00000202
|
|
_027E82FC: .word 0x00000283
|
|
_027E8300: .word 0x0000FFFF
|
|
_027E8304: .word 0x001FF621
|
|
_027E8308: .word 0x00000306
|
|
_027E830C: .word 0x00000281
|
|
_027E8310: .word 0x00000215
|
|
arm_func_end sub_027E8104
|
|
|
|
arm_func_start sub_027E8314
|
|
sub_027E8314: ; 0x027E8314
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r0, _027E83BC ; =0x027F8878
|
|
ldr r5, [r0, #0x550]
|
|
ldrh r0, [r5]
|
|
cmp r0, #2
|
|
beq _027E834C
|
|
bl sub_03807380
|
|
mov r1, #6
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
b _027E83B0
|
|
_027E834C:
|
|
add r0, sp, #0
|
|
bl sub_027E2880
|
|
mov r4, r0
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _027E8390
|
|
bl sub_03807380
|
|
mov r2, #6
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
add r1, r1, #0x300
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r4, #4]
|
|
strh r1, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E83B0
|
|
_027E8390:
|
|
mov r0, #1
|
|
strh r0, [r5]
|
|
bl sub_03807380
|
|
mov r1, #6
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E83B0:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E83BC: .word 0x027F8878
|
|
arm_func_end sub_027E8314
|
|
|
|
arm_func_start sub_027E83C0
|
|
sub_027E83C0: ; 0x027E83C0
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #0x1c
|
|
mov r6, r0
|
|
add r1, sp, #0
|
|
add r0, r6, #4
|
|
bl sub_027E841C
|
|
mov r5, r0
|
|
bl sub_03807380
|
|
mov r4, r0
|
|
mov r0, #0x23
|
|
strh r0, [r4]
|
|
strh r5, [r4, #2]
|
|
ldr r3, [r6, #4]
|
|
add r0, sp, #0
|
|
add r1, r4, #8
|
|
mov r2, #0x1c
|
|
str r3, [r4, #4]
|
|
bl sub_037FE12C
|
|
mov r0, r4
|
|
bl sub_03807334
|
|
add sp, sp, #0x1c
|
|
ldmia sp!, {r3, r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_027E83C0
|
|
|
|
arm_func_start sub_027E841C
|
|
sub_027E841C: ; 0x027E841C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r2, _027E872C ; =0x027F8878
|
|
mov r4, r0
|
|
ldr r8, [r2, #0x550]
|
|
ldr r7, [r4]
|
|
ldrh r0, [r8]
|
|
mov sb, r1
|
|
add r0, r0, #0xf7
|
|
add r0, r0, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #1
|
|
mov r6, #0
|
|
bhi _027E8460
|
|
tst r7, #0x2c00
|
|
bicne r7, r7, #0x2c00
|
|
movne r6, #3
|
|
_027E8460:
|
|
bl sub_037FDD00
|
|
mov r5, r0
|
|
cmp sb, #0
|
|
beq _027E84E8
|
|
ldr r0, _027E8730 ; =0x00003FFF
|
|
str r0, [sb]
|
|
ldrh r0, [r8, #0x58]
|
|
strh r0, [sb, #4]
|
|
ldrh r0, [r8, #0x5a]
|
|
strh r0, [sb, #6]
|
|
ldrh r0, [r8, #0x5c]
|
|
strh r0, [sb, #8]
|
|
ldrh r0, [r8, #0x30]
|
|
strh r0, [sb, #0xa]
|
|
ldrh r0, [r8, #0x32]
|
|
strh r0, [sb, #0xc]
|
|
ldrh r0, [r8, #0x44]
|
|
strh r0, [sb, #0xe]
|
|
ldrh r0, [r8, #0x46]
|
|
strh r0, [sb, #0x10]
|
|
ldrh r0, [r8, #0x40]
|
|
strh r0, [sb, #0x12]
|
|
ldrh r0, [r8, #0x42]
|
|
strh r0, [sb, #0x14]
|
|
ldrh r0, [r8, #0x98]
|
|
strh r0, [sb, #0x16]
|
|
ldrh r0, [r8, #0x92]
|
|
strb r0, [sb, #0x18]
|
|
ldrh r0, [r8, #0x94]
|
|
strb r0, [sb, #0x19]
|
|
ldrh r0, [r8, #0x9a]
|
|
strb r0, [sb, #0x1a]
|
|
ldrh r0, [r8, #0x9c]
|
|
strb r0, [sb, #0x1b]
|
|
_027E84E8:
|
|
tst r7, #1
|
|
beq _027E8508
|
|
ldrh r1, [r4, #4]
|
|
add r0, r8, #0x700
|
|
cmp r1, #0
|
|
moveq r1, #0x10
|
|
strh r1, [r8, #0x58]
|
|
strh r1, [r0, #0xc0]
|
|
_027E8508:
|
|
tst r7, #2
|
|
beq _027E8534
|
|
ldrh r1, [r4, #6]
|
|
add r0, r8, #0x700
|
|
cmp r1, #0
|
|
moveq r1, #0x10
|
|
strh r1, [r8, #0x5a]
|
|
strh r1, [r0, #0xc2]
|
|
ldrsh r0, [r8, #0x62]
|
|
cmp r0, r1
|
|
strgth r1, [r8, #0x62]
|
|
_027E8534:
|
|
tst r7, #4
|
|
beq _027E8560
|
|
ldrh r1, [r4, #8]
|
|
add r0, r8, #0x700
|
|
cmp r1, #0
|
|
moveq r1, #0x10
|
|
strh r1, [r8, #0x5c]
|
|
strh r1, [r0, #0xc4]
|
|
ldrsh r0, [r8, #0x62]
|
|
cmp r0, r1
|
|
strgth r1, [r8, #0x62]
|
|
_027E8560:
|
|
tst r7, #8
|
|
beq _027E858C
|
|
ldrh r0, [r4, #0xa]
|
|
ldrh r2, [r8, #0x34]
|
|
add r1, r0, #1
|
|
bic r1, r1, #1
|
|
mov r1, r1, lsl #0x10
|
|
cmp r2, r1, lsr #16
|
|
movlo r6, #6
|
|
blo _027E858C
|
|
bl sub_027E0840
|
|
_027E858C:
|
|
tst r7, #0x10
|
|
beq _027E85B8
|
|
ldrh r0, [r4, #0xc]
|
|
add r1, r0, #1
|
|
bic r1, r1, #1
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
cmp r1, #0x200
|
|
movhi r6, #6
|
|
bhi _027E85B8
|
|
bl sub_027E086C
|
|
_027E85B8:
|
|
tst r7, #0x20
|
|
beq _027E860C
|
|
ldrh r0, [r4, #0xe]
|
|
ldr r1, _027E8734 ; =0x00002710
|
|
cmp r0, r1
|
|
movhi r6, #6
|
|
bhi _027E860C
|
|
ldr r1, _027E8738 ; =0x000082EA
|
|
mov r2, #0
|
|
umull sb, r3, r0, r1
|
|
mla r3, r0, r2, r3
|
|
mla r3, r2, r1, r3
|
|
mov r2, sb, lsr #6
|
|
orr r2, r2, r3, lsl #26
|
|
mov r1, r3, lsr #6
|
|
mov r2, r2, lsr #0xa
|
|
strh r0, [r8, #0x44]
|
|
orr r2, r2, r1, lsl #22
|
|
str r2, [r8, #0x48]
|
|
mov r0, r1, lsr #0xa
|
|
str r0, [r8, #0x4c]
|
|
_027E860C:
|
|
tst r7, #0x40
|
|
beq _027E8660
|
|
ldrh r0, [r4, #0x10]
|
|
ldr r1, _027E8734 ; =0x00002710
|
|
cmp r0, r1
|
|
movhi r6, #6
|
|
bhi _027E8660
|
|
ldr r1, _027E8738 ; =0x000082EA
|
|
mov r2, #0
|
|
umull sb, r3, r0, r1
|
|
mla r3, r0, r2, r3
|
|
mla r3, r2, r1, r3
|
|
mov r2, sb, lsr #6
|
|
orr r2, r2, r3, lsl #26
|
|
mov r1, r3, lsr #6
|
|
mov r2, r2, lsr #0xa
|
|
strh r0, [r8, #0x46]
|
|
orr r2, r2, r1, lsl #22
|
|
str r2, [r8, #0x50]
|
|
mov r0, r1, lsr #0xa
|
|
str r0, [r8, #0x54]
|
|
_027E8660:
|
|
tst r7, #0x80
|
|
beq _027E8694
|
|
ldrh r1, [r4, #0x12]
|
|
cmp r1, #0xbe
|
|
bls _027E8688
|
|
cmp r1, #0xdc
|
|
blo _027E8690
|
|
ldr r0, _027E873C ; =0x00000106
|
|
cmp r1, r0
|
|
bhi _027E8690
|
|
_027E8688:
|
|
strh r1, [r8, #0x40]
|
|
b _027E8694
|
|
_027E8690:
|
|
mov r6, #6
|
|
_027E8694:
|
|
tst r7, #0x100
|
|
beq _027E86C8
|
|
ldrh r1, [r4, #0x14]
|
|
cmp r1, #0xbe
|
|
bls _027E86BC
|
|
cmp r1, #0xdc
|
|
blo _027E86C4
|
|
ldr r0, _027E873C ; =0x00000106
|
|
cmp r1, r0
|
|
bhi _027E86C4
|
|
_027E86BC:
|
|
strh r1, [r8, #0x42]
|
|
b _027E86C8
|
|
_027E86C4:
|
|
mov r6, #6
|
|
_027E86C8:
|
|
tst r7, #0x200
|
|
ldrneh r1, [r4, #0x16]
|
|
addne r0, r8, #0x700
|
|
strneh r1, [r8, #0x98]
|
|
strneh r1, [r0, #0xca]
|
|
tst r7, #0x400
|
|
ldrneb r0, [r4, #0x18]
|
|
strneh r0, [r8, #0x92]
|
|
tst r7, #0x800
|
|
ldrneb r0, [r4, #0x19]
|
|
strneh r0, [r8, #0x94]
|
|
tst r7, #0x1000
|
|
ldrneb r1, [r4, #0x1a]
|
|
addne r0, r8, #0x700
|
|
strneh r1, [r8, #0x9a]
|
|
ldrneh r1, [r8, #0x9a]
|
|
strneh r1, [r0, #0xcc]
|
|
tst r7, #0x2000
|
|
ldrneb r0, [r4, #0x1b]
|
|
strneh r0, [r8, #0x9c]
|
|
mov r0, r5
|
|
bl sub_037FDD14
|
|
mov r0, r6
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E872C: .word 0x027F8878
|
|
_027E8730: .word 0x00003FFF
|
|
_027E8734: .word 0x00002710
|
|
_027E8738: .word 0x000082EA
|
|
_027E873C: .word 0x00000106
|
|
arm_func_end sub_027E841C
|
|
|
|
arm_func_start sub_027E8740
|
|
sub_027E8740: ; 0x027E8740
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r1, [r0, #4]
|
|
add r0, sp, #0
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_027E275C
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
beq _027E8790
|
|
bl sub_03807380
|
|
mov r1, #0x24
|
|
strh r1, [r0]
|
|
mov r2, #1
|
|
ldr r1, _027E87B4 ; =0x00000242
|
|
strh r2, [r0, #2]
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03807334
|
|
b _027E87A8
|
|
_027E8790:
|
|
bl sub_03807380
|
|
mov r1, #0x24
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
_027E87A8:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E87B4: .word 0x00000242
|
|
arm_func_end sub_027E8740
|
|
|
|
arm_func_start sub_027E87B8
|
|
sub_027E87B8: ; 0x027E87B8
|
|
ldr ip, _027E87C8 ; =sub_027E44FC
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_027E87C8: .word sub_027E44FC
|
|
arm_func_end sub_027E87B8
|
|
|
|
arm_func_start sub_027E87CC
|
|
sub_027E87CC: ; 0x027E87CC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x230
|
|
ldr r1, _027E8948 ; =0x027F8878
|
|
mov r7, r0
|
|
ldr r6, [r1, #0x550]
|
|
add r5, sp, #0x30
|
|
bl sub_03807380
|
|
mov r4, r0
|
|
mov r1, #0x28
|
|
strh r1, [r4]
|
|
ldrh r1, [r6]
|
|
cmp r1, #0xb
|
|
beq _027E8810
|
|
mov r1, #3
|
|
strh r1, [r4, #2]
|
|
bl sub_03807334
|
|
b _027E893C
|
|
_027E8810:
|
|
ldr r0, [r7, #4]
|
|
mov r2, #0
|
|
cmp r0, #1
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
mov r1, r0, lsl #0x10
|
|
mov r0, r5
|
|
mov r1, r1, lsr #0x10
|
|
mov r3, #1
|
|
bl sub_027E1DBC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E8864
|
|
mov r1, #1
|
|
strh r1, [r4, #2]
|
|
strh r1, [r4, #4]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, r4
|
|
strh r1, [r4, #6]
|
|
bl sub_03807334
|
|
b _027E893C
|
|
_027E8864:
|
|
ldr r0, _027E8948 ; =0x027F8878
|
|
mov r2, #6
|
|
ldr r5, [r0, #0x550]
|
|
add r0, r5, #0x8a
|
|
add r0, r0, #0x100
|
|
add r1, r5, #0xa2
|
|
bl sub_037FE12C
|
|
add r1, sp, #0x30
|
|
str r1, [r5, #0xa8]
|
|
mov r0, #0
|
|
strh r0, [r5, #0xac]
|
|
mov r2, #1
|
|
str r2, [r5, #0x18]
|
|
add r1, sp, #0
|
|
mov r2, #0x30
|
|
bl sub_037FDF74
|
|
mov r0, #0
|
|
strh r0, [sp]
|
|
strh r0, [sp, #6]
|
|
add r0, r5, #0x100
|
|
ldrh r0, [r0, #0xec]
|
|
add r1, sp, #0x18
|
|
cmp r0, #2
|
|
moveq r3, #0x14
|
|
add r0, r5, #0x8a
|
|
movne r3, #0xa
|
|
add r0, r0, #0x100
|
|
mov r2, #6
|
|
strb r3, [sp, #0xe]
|
|
bl sub_037FE12C
|
|
add r1, sp, #0x1e
|
|
add r0, r5, #0xe0
|
|
mov r2, #6
|
|
bl sub_037FE12C
|
|
add r0, sp, #0x30
|
|
str r0, [sp, #0x2c]
|
|
add r1, sp, #0
|
|
bl sub_027E2200
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027E892C
|
|
mov r1, #1
|
|
strh r1, [r4, #2]
|
|
mov r1, #0x100
|
|
strh r1, [r4, #4]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, r4
|
|
strh r1, [r4, #6]
|
|
bl sub_03807334
|
|
b _027E893C
|
|
_027E892C:
|
|
mov r1, #0
|
|
mov r0, r4
|
|
strh r1, [r4, #2]
|
|
bl sub_03807334
|
|
_027E893C:
|
|
add sp, sp, #0x230
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8948: .word 0x027F8878
|
|
arm_func_end sub_027E87CC
|
|
|
|
arm_func_start sub_027E894C
|
|
sub_027E894C: ; 0x027E894C
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_03807380
|
|
mov r1, #0x29
|
|
strh r1, [r0]
|
|
mov r1, #4
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_027E894C
|
|
|
|
arm_func_start sub_027E8970
|
|
sub_027E8970: ; 0x027E8970
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_03807380
|
|
mov r1, #0x2a
|
|
strh r1, [r0]
|
|
mov r1, #4
|
|
strh r1, [r0, #2]
|
|
bl sub_03807334
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_027E8970
|
|
|
|
arm_func_start sub_027E8994
|
|
sub_027E8994: ; 0x027E8994
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_027EABE0
|
|
bl sub_027E9CF4
|
|
bl sub_027EA720
|
|
bl sub_027E8D44
|
|
bl sub_027E8BC4
|
|
ldr r0, _027E89DC ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r1, r0, #0x300
|
|
ldr r0, [r0, #0x31c]
|
|
ldrh r1, [r1, #0x20]
|
|
bl sub_027E8DDC
|
|
bl sub_027EC6E4
|
|
bl sub_027EE0B0
|
|
bl sub_027EC474
|
|
bl sub_027E97B0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E89DC: .word 0x0380FFF4
|
|
arm_func_end sub_027E8994
|
|
|
|
arm_func_start sub_027E89E0
|
|
sub_027E89E0: ; 0x027E89E0
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #0xc
|
|
mov r4, r0
|
|
ldr r1, [r4]
|
|
ldr r3, _027E8BA0 ; =0x0380FFF4
|
|
ldr r2, _027E8BA4 ; =0x00000694
|
|
mov r0, #0
|
|
str r1, [r3]
|
|
bl sub_037FE014
|
|
bl sub_037FBBFC
|
|
ldr r2, _027E8BA0 ; =0x0380FFF4
|
|
ldr r1, [r2]
|
|
str r0, [r1, #0x314]
|
|
ldr r1, [r4, #0x18]
|
|
ldr r0, [r2]
|
|
str r1, [r0, #0x30c]
|
|
ldr r1, [r4, #0x1c]
|
|
ldr r0, [r2]
|
|
mov r1, r1, lsr #1
|
|
str r1, [r0, #0x310]
|
|
ldr r1, [r2]
|
|
ldr r0, [r1, #0x310]
|
|
cmp r0, #0
|
|
mvneq r0, #0
|
|
streq r0, [r1, #0x310]
|
|
add r0, r4, #0x20
|
|
bl sub_027E8C6C
|
|
bl sub_027F4EC0
|
|
ldr r3, _027E8BA8 ; =0x04000304
|
|
ldr r1, _027E8BA0 ; =0x0380FFF4
|
|
ldrh r2, [r3]
|
|
mov r0, #0x30
|
|
orr r2, r2, #2
|
|
strh r2, [r3]
|
|
strh r0, [r3, #-0xfe]
|
|
ldr r0, [r1]
|
|
mov r2, #3
|
|
str r2, [r0, #0x68c]
|
|
ldr r1, [r1]
|
|
mov r0, #0x3c
|
|
add r1, r1, #0x92
|
|
add r2, r1, #0x600
|
|
mov r1, #2
|
|
bl sub_027F4E10
|
|
ldr r1, _027E8BA0 ; =0x0380FFF4
|
|
mov r0, #0x3e
|
|
ldr r2, [r1]
|
|
mov r1, #2
|
|
add r2, r2, #0x690
|
|
bl sub_027F4E10
|
|
ldr r2, _027E8BA0 ; =0x0380FFF4
|
|
ldr r3, [r4, #0x10]
|
|
ldr r0, [r2]
|
|
mov r1, #0x1c
|
|
str r3, [r0, #0x308]
|
|
ldr r0, [r2]
|
|
ldr r2, [r4, #0x14]
|
|
str r2, [r0, #0x304]
|
|
ldr r0, [r4, #0x30]
|
|
bl sub_03806DD4
|
|
mov r1, r0
|
|
ldr r0, [r4, #0x2c]
|
|
bl sub_027E8DDC
|
|
bl sub_027E8BC4
|
|
bl sub_027EC6E4
|
|
bl sub_027EE0B0
|
|
bl sub_027EC474
|
|
bl sub_027EA948
|
|
add r0, sp, #8
|
|
bl sub_027F4D2C
|
|
cmp r0, #0
|
|
beq _027E8B1C
|
|
ldr r0, _027E8BA0 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x3e]
|
|
orr r1, r1, #0x80
|
|
strh r1, [r0, #0x3e]
|
|
b _027E8B44
|
|
_027E8B1C:
|
|
bl sub_027EA6B0
|
|
bl sub_027EB220
|
|
bl sub_027E9D7C
|
|
bl sub_027EA720
|
|
bl sub_027EA7C0
|
|
bl sub_027EB3C4
|
|
bl sub_027EB550
|
|
bl sub_027EA758
|
|
bl sub_027E97B0
|
|
bl sub_027E9CF4
|
|
_027E8B44:
|
|
ldr r1, [r4, #8]
|
|
ldr r0, _027E8BA0 ; =0x0380FFF4
|
|
str r1, [sp]
|
|
ldr r2, [r4, #0xc]
|
|
ldr r1, _027E8BAC ; =0x037F84E0
|
|
str r2, [sp, #4]
|
|
ldr r0, [r0]
|
|
ldr r3, [r4, #4]
|
|
add r0, r0, #0x18
|
|
mov r2, #0
|
|
bl sub_037FC054
|
|
ldr r0, _027E8BA0 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x18
|
|
bl sub_037FC36C
|
|
bl sub_027EB8BC
|
|
ldr r0, _027E8BA0 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x3e]
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8BA0: .word 0x0380FFF4
|
|
_027E8BA4: .word 0x00000694
|
|
_027E8BA8: .word 0x04000304
|
|
_027E8BAC: .word 0x037F84E0
|
|
arm_func_end sub_027E89E0
|
|
|
|
arm_func_start sub_027E8BB0
|
|
sub_027E8BB0: ; 0x027E8BB0
|
|
ldr r0, _027E8BC0 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x18
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8BC0: .word 0x0380FFF4
|
|
arm_func_end sub_027E8BB0
|
|
|
|
arm_func_start sub_027E8BC4
|
|
sub_027E8BC4: ; 0x027E8BC4
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027E8C44 ; =0x0380FFF4
|
|
mov r3, #0
|
|
ldr lr, [r0]
|
|
ldr r2, _027E8C48 ; =0x0000FFFF
|
|
strh r3, [lr, #0x10]
|
|
strh r3, [lr, #0x12]
|
|
_027E8BE0:
|
|
add r0, lr, r3, lsl #1
|
|
strh r2, [r0, #8]
|
|
ldrh r0, [r0, #8]
|
|
mov r1, r3, lsl #1
|
|
add r3, r3, #1
|
|
strh r0, [lr, r1]
|
|
cmp r3, #4
|
|
blo _027E8BE0
|
|
ldr ip, _027E8C48 ; =0x0000FFFF
|
|
mov r4, #0
|
|
ldr r1, _027E8C4C ; =0x027F723C
|
|
mov r2, r4
|
|
_027E8C10:
|
|
add r3, lr, r4, lsl #3
|
|
strh ip, [r3, #0xbc]
|
|
ldr r0, [r1, r4, lsl #2]
|
|
strh r2, [r3, #0xbe]
|
|
add r4, r4, #1
|
|
str r0, [r3, #0xc0]
|
|
cmp r4, #0x18
|
|
blo _027E8C10
|
|
mov r0, #3
|
|
mov r1, #0xc
|
|
bl sub_037F8598
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8C44: .word 0x0380FFF4
|
|
_027E8C48: .word 0x0000FFFF
|
|
_027E8C4C: .word 0x027F723C
|
|
arm_func_end sub_027E8BC4
|
|
|
|
arm_func_start sub_027E8C50
|
|
sub_027E8C50: ; 0x027E8C50
|
|
mvn r2, #0
|
|
str r2, [r0]
|
|
str r2, [r0, #4]
|
|
mov r2, #0
|
|
strh r2, [r0, #8]
|
|
strh r1, [r0, #0xa]
|
|
bx lr
|
|
arm_func_end sub_027E8C50
|
|
|
|
arm_func_start sub_027E8C6C
|
|
sub_027E8C6C: ; 0x027E8C6C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _027E8D40 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
ldr r4, [r1]
|
|
mov r1, #2
|
|
str r2, [r4, #0x17c]
|
|
ldr r2, [r0, #4]
|
|
add r5, r4, #0x344
|
|
str r2, [r4, #0x180]
|
|
ldr r2, [r0, #8]
|
|
add r0, r4, #0x188
|
|
str r2, [r4, #0x184]
|
|
bl sub_027E8C50
|
|
add r0, r4, #0x194
|
|
mov r1, #3
|
|
bl sub_027E8C50
|
|
add r0, r4, #0x1a0
|
|
mov r1, #4
|
|
bl sub_027E8C50
|
|
add r0, r4, #0x1ac
|
|
mov r1, #5
|
|
bl sub_027E8C50
|
|
add r0, r4, #0x1b8
|
|
mov r1, #6
|
|
bl sub_027E8C50
|
|
add r0, r4, #0x1c4
|
|
mov r1, #7
|
|
bl sub_027E8C50
|
|
add r0, r4, #0x1d0
|
|
mov r1, #8
|
|
bl sub_027E8C50
|
|
add r0, r4, #0x1dc
|
|
mov r1, #9
|
|
bl sub_027E8C50
|
|
add r0, r4, #0x1e8
|
|
mov r1, #0xa
|
|
bl sub_027E8C50
|
|
add r0, r4, #0x1f4
|
|
mov r1, #0xb
|
|
bl sub_027E8C50
|
|
add r0, r4, #0x200
|
|
mov r1, #0xc
|
|
bl sub_027E8C50
|
|
add r0, r4, #0x188
|
|
mov r1, #0x81
|
|
bl sub_037F886C
|
|
add r0, r0, #0xc
|
|
str r0, [r5, #0x9c]
|
|
mov r0, #0
|
|
strh r0, [r5, #0xa0]
|
|
strh r0, [r5, #0xa4]
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8D40: .word 0x0380FFF4
|
|
arm_func_end sub_027E8C6C
|
|
|
|
arm_func_start sub_027E8D44
|
|
sub_027E8D44: ; 0x027E8D44
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027E8D98 ; =0x0380FFF4
|
|
ldr r4, [r0]
|
|
add r0, r4, #0x194
|
|
bl sub_027E8D9C
|
|
add r0, r4, #0x1a0
|
|
bl sub_027E8D9C
|
|
add r0, r4, #0x1ac
|
|
bl sub_027E8D9C
|
|
add r0, r4, #0x1b8
|
|
bl sub_027E8D9C
|
|
add r0, r4, #0x1c4
|
|
bl sub_027E8D9C
|
|
add r0, r4, #0x1d0
|
|
bl sub_027E8D9C
|
|
add r0, r4, #0x1dc
|
|
bl sub_027E8D9C
|
|
add r0, r4, #0x1e8
|
|
bl sub_027E8D9C
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8D98: .word 0x0380FFF4
|
|
arm_func_end sub_027E8D44
|
|
|
|
arm_func_start sub_027E8D9C
|
|
sub_027E8D9C: ; 0x027E8D9C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
ldrh r0, [r6, #8]
|
|
ldr r1, [r6]
|
|
cmp r0, #0
|
|
beq _027E8DD4
|
|
mvn r4, #0
|
|
b _027E8DCC
|
|
_027E8DBC:
|
|
ldr r5, [r1, #4]
|
|
mov r0, r6
|
|
bl sub_037F8908
|
|
mov r1, r5
|
|
_027E8DCC:
|
|
cmp r1, r4
|
|
bne _027E8DBC
|
|
_027E8DD4:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_027E8D9C
|
|
|
|
arm_func_start sub_027E8DDC
|
|
sub_027E8DDC: ; 0x027E8DDC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _027E8E58 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r3, [r2]
|
|
mov r6, r1
|
|
add r1, r3, #0x31c
|
|
mov r0, #0
|
|
mov r2, #0x28
|
|
ldr r4, [r3, #0x3e0]
|
|
bl sub_037FDF74
|
|
ldr r1, _027E8E58 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
mov r2, #0xc0
|
|
add r1, r1, #0x344
|
|
bl sub_037FDF74
|
|
ldr r3, _027E8E58 ; =0x0380FFF4
|
|
mov r0, r6, lsl #0x10
|
|
ldr r2, [r3]
|
|
mov r1, r0, lsr #0x10
|
|
str r5, [r2, #0x31c]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x300
|
|
strh r1, [r0, #0x20]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x300
|
|
strh r1, [r0, #0x22]
|
|
ldr r0, [r3]
|
|
str r4, [r0, #0x3e0]
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8E58: .word 0x0380FFF4
|
|
arm_func_end sub_027E8DDC
|
|
|
|
arm_func_start sub_027E8E5C
|
|
sub_027E8E5C: ; 0x027E8E5C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldrh r0, [r4]
|
|
tst r0, #1
|
|
movne r0, #5
|
|
bne _027E8EAC
|
|
ldr r0, _027E8EB4 ; =0x0380FFF4
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x324
|
|
bl sub_027EA0E0
|
|
ldr r0, _027E8EB8 ; =0x04808018
|
|
mov r1, r4
|
|
bl sub_027EA0E0
|
|
ldr r1, _027E8EB4 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x340]
|
|
orr r1, r1, #2
|
|
str r1, [r2, #0x340]
|
|
_027E8EAC:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8EB4: .word 0x0380FFF4
|
|
_027E8EB8: .word 0x04808018
|
|
arm_func_end sub_027E8E5C
|
|
|
|
arm_func_start sub_027E8EBC
|
|
sub_027E8EBC: ; 0x027E8EBC
|
|
cmp r0, #0xff
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r1, _027E8EE8 ; =0x0380FFF4
|
|
ldr r2, _027E8EEC ; =0x0480802C
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0x2a]
|
|
strh r0, [r2]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8EE8: .word 0x0380FFF4
|
|
_027E8EEC: .word 0x0480802C
|
|
arm_func_end sub_027E8EBC
|
|
|
|
arm_func_start sub_027E8EF0
|
|
sub_027E8EF0: ; 0x027E8EF0
|
|
ldr r1, _027E8F28 ; =0x00007FFE
|
|
tst r0, r1
|
|
moveq r0, #5
|
|
bxeq lr
|
|
ldr r2, _027E8F2C ; =0x0380FFF4
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0x2c]
|
|
ldr r2, [r2]
|
|
mov r0, #0
|
|
ldr r1, [r2, #0x340]
|
|
orr r1, r1, #4
|
|
str r1, [r2, #0x340]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8F28: .word 0x00007FFE
|
|
_027E8F2C: .word 0x0380FFF4
|
|
arm_func_end sub_027E8EF0
|
|
|
|
arm_func_start sub_027E8F30
|
|
sub_027E8F30: ; 0x027E8F30
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #3
|
|
movhi r0, #5
|
|
bhi _027E8F9C
|
|
ldr ip, _027E8FA4 ; =0x0380FFF4
|
|
ldr r3, _027E8FA8 ; =0x04808006
|
|
ldr r1, [ip]
|
|
ldr r2, _027E8FAC ; =0x0000FFF8
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0x2e]
|
|
ldr r1, [ip]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0x50]
|
|
ldrh r1, [r3]
|
|
and r1, r1, r2
|
|
orr r0, r1, r0
|
|
strh r0, [r3]
|
|
ldr r0, [ip]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x52]
|
|
bl sub_027E9C4C
|
|
ldr r1, _027E8FA4 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x340]
|
|
orr r1, r1, #8
|
|
str r1, [r2, #0x340]
|
|
_027E8F9C:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8FA4: .word 0x0380FFF4
|
|
_027E8FA8: .word 0x04808006
|
|
_027E8FAC: .word 0x0000FFF8
|
|
arm_func_end sub_027E8F30
|
|
|
|
arm_func_start sub_027E8FB0
|
|
sub_027E8FB0: ; 0x027E8FB0
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #2
|
|
movhi r0, #5
|
|
bhi _027E8FD8
|
|
ldr r1, _027E8FE0 ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0x30]
|
|
bl sub_027E9BCC
|
|
mov r0, #0
|
|
_027E8FD8:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E8FE0: .word 0x0380FFF4
|
|
arm_func_end sub_027E8FB0
|
|
|
|
arm_func_start sub_027E8FE4
|
|
sub_027E8FE4: ; 0x027E8FE4
|
|
ldr r1, _027E9078 ; =0x0380FFF4
|
|
cmp r0, #3
|
|
ldr r1, [r1]
|
|
movhi r0, #5
|
|
add r2, r1, #0x344
|
|
bxhi lr
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0x34]
|
|
ldrh r1, [r2, #0x7c]
|
|
cmp r0, #0
|
|
biceq r1, r1, #0x10
|
|
streqh r1, [r2, #0x7c]
|
|
ldreqh r1, [r2, #0x8a]
|
|
ldr r3, _027E907C ; =0x04808006
|
|
biceq r1, r1, #0x4000
|
|
orrne r1, r1, #0x10
|
|
strneh r1, [r2, #0x7c]
|
|
ldrneh r1, [r2, #0x8a]
|
|
orrne r1, r1, #0x4000
|
|
strh r1, [r2, #0x8a]
|
|
ldrh r1, [r2, #8]
|
|
cmp r1, #0x40
|
|
cmpeq r0, #1
|
|
ldreq r1, _027E9078 ; =0x0380FFF4
|
|
ldreqh r2, [r2, #0x7c]
|
|
ldreq r1, [r1]
|
|
ldreq r1, [r1, #0x4ac]
|
|
streqh r2, [r1, #0x2e]
|
|
cmp r0, #0
|
|
ldr r1, _027E9080 ; =0x0000FFC7
|
|
ldrh r2, [r3]
|
|
moveq r0, #1
|
|
and r1, r2, r1
|
|
orr r0, r1, r0, lsl #3
|
|
strh r0, [r3]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9078: .word 0x0380FFF4
|
|
_027E907C: .word 0x04808006
|
|
_027E9080: .word 0x0000FFC7
|
|
arm_func_end sub_027E8FE4
|
|
|
|
arm_func_start sub_027E9084
|
|
sub_027E9084: ; 0x027E9084
|
|
cmp r0, #3
|
|
ldrls r1, _027E90A4 ; =0x0380FFF4
|
|
movhi r0, #5
|
|
ldrls r1, [r1]
|
|
addls r1, r1, #0x300
|
|
strlsh r0, [r1, #0x36]
|
|
movls r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027E90A4: .word 0x0380FFF4
|
|
arm_func_end sub_027E9084
|
|
|
|
arm_func_start sub_027E90A8
|
|
sub_027E90A8: ; 0x027E90A8
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _027E90F8 ; =0x04805F80
|
|
mov r2, #0x14
|
|
mov r4, r0
|
|
bl sub_037FDF9C
|
|
ldr r1, _027E90FC ; =0x04805FA0
|
|
add r0, r4, #0x14
|
|
mov r2, #0x14
|
|
bl sub_037FDF9C
|
|
ldr r1, _027E9100 ; =0x04805FC0
|
|
add r0, r4, #0x28
|
|
mov r2, #0x14
|
|
bl sub_037FDF9C
|
|
ldr r1, _027E9104 ; =0x04805FE0
|
|
add r0, r4, #0x3c
|
|
mov r2, #0x14
|
|
bl sub_037FDF9C
|
|
mov r0, #0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E90F8: .word 0x04805F80
|
|
_027E90FC: .word 0x04805FA0
|
|
_027E9100: .word 0x04805FC0
|
|
_027E9104: .word 0x04805FE0
|
|
arm_func_end sub_027E90A8
|
|
|
|
arm_func_start sub_027E9108
|
|
sub_027E9108: ; 0x027E9108
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r1, _027E913C ; =0x0380FFF4
|
|
and r2, r0, #1
|
|
ldr r1, [r1]
|
|
mov r0, #0
|
|
add r1, r1, #0x300
|
|
ldrh r3, [r1, #0x3a]
|
|
bic r3, r3, #1
|
|
orr r2, r3, r2
|
|
strh r2, [r1, #0x3a]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E913C: .word 0x0380FFF4
|
|
arm_func_end sub_027E9108
|
|
|
|
arm_func_start sub_027E9140
|
|
sub_027E9140: ; 0x027E9140
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r1, _027E9174 ; =0x0380FFF4
|
|
mov r2, r0, lsl #0x1f
|
|
ldr r1, [r1]
|
|
mov r0, #0
|
|
add r1, r1, #0x300
|
|
ldrh r3, [r1, #0x3a]
|
|
bic r3, r3, #2
|
|
orr r2, r3, r2, lsr #30
|
|
strh r2, [r1, #0x3a]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9174: .word 0x0380FFF4
|
|
arm_func_end sub_027E9140
|
|
|
|
arm_func_start sub_027E9178
|
|
sub_027E9178: ; 0x027E9178
|
|
cmp r0, #0xff
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r2, _027E91AC ; =0x0380FFF4
|
|
mov r3, #0
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
strh r3, [r1, #0xc4]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0xc2]
|
|
mov r0, r3
|
|
bx lr
|
|
.align 2, 0
|
|
_027E91AC: .word 0x0380FFF4
|
|
arm_func_end sub_027E9178
|
|
|
|
arm_func_start sub_027E91B0
|
|
sub_027E91B0: ; 0x027E91B0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
cmp r4, #0xa
|
|
movlo r0, #5
|
|
blo _027E9250
|
|
ldr r0, _027E9258 ; =0x0380FFF4
|
|
cmp r1, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
strh r4, [r0, #0x3c]
|
|
ldrne r0, _027E925C ; =0x04808134
|
|
strneh r4, [r0]
|
|
ldr r0, _027E9258 ; =0x0380FFF4
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x400
|
|
ldrh r0, [r0, #0xa4]
|
|
cmp r0, #0
|
|
beq _027E924C
|
|
ldr r2, [r1, #0x4ac]
|
|
add r0, r1, #0x300
|
|
ldrh r1, [r0, #0x52]
|
|
ldrh r0, [r0, #0xda]
|
|
add r2, r2, #0x24
|
|
add r5, r2, r0
|
|
cmp r1, #1
|
|
add r0, r5, #6
|
|
bne _027E9238
|
|
and r1, r4, #0xff
|
|
bl sub_027EAD24
|
|
mov r1, r4, asr #8
|
|
add r0, r5, #7
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
b _027E924C
|
|
_027E9238:
|
|
mov r1, #0xff
|
|
bl sub_027EAD24
|
|
add r0, r5, #7
|
|
mov r1, #0xff
|
|
bl sub_027EAD24
|
|
_027E924C:
|
|
mov r0, #0
|
|
_027E9250:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9258: .word 0x0380FFF4
|
|
_027E925C: .word 0x04808134
|
|
arm_func_end sub_027E91B0
|
|
|
|
arm_func_start sub_027E9260
|
|
sub_027E9260: ; 0x027E9260
|
|
ldr r1, _027E928C ; =0x0380FFF4
|
|
mov r2, #0
|
|
ldr r1, [r1]
|
|
add r3, r1, #0x384
|
|
_027E9270:
|
|
ldrh r1, [r0], #2
|
|
add r2, r2, #1
|
|
cmp r2, #0x10
|
|
strh r1, [r3], #2
|
|
blo _027E9270
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027E928C: .word 0x0380FFF4
|
|
arm_func_end sub_027E9260
|
|
|
|
arm_func_start sub_027E9290
|
|
sub_027E9290: ; 0x027E9290
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _027E9330 ; =0x0380FFF4
|
|
cmp r0, #1
|
|
ldr r2, [r1]
|
|
movhi r0, #5
|
|
add r1, r2, #0x344
|
|
bhi _027E9328
|
|
add r2, r2, #0x300
|
|
ldrh ip, [r2, #0x3a]
|
|
mov r3, r0, lsl #0x1f
|
|
bic ip, ip, #4
|
|
orr r3, ip, r3, lsr #29
|
|
strh r3, [r2, #0x3a]
|
|
ldrh r2, [r1, #0x7c]
|
|
cmp r0, #0
|
|
biceq r2, r2, #0x20
|
|
orrne r2, r2, #0x20
|
|
strh r2, [r1, #0x7c]
|
|
ldrh r2, [r1, #8]
|
|
cmp r2, #0x40
|
|
ldreq r2, _027E9330 ; =0x0380FFF4
|
|
ldreq r3, [r2]
|
|
addeq r2, r3, #0x300
|
|
ldreqh r2, [r2, #0x2e]
|
|
cmpeq r2, #1
|
|
ldreqh r2, [r1, #0x7c]
|
|
ldreq r1, [r3, #0x4ac]
|
|
streqh r2, [r1, #0x2e]
|
|
ldr r1, _027E9334 ; =0x048080BC
|
|
cmp r0, #0
|
|
ldreqh r0, [r1]
|
|
biceq r0, r0, #6
|
|
streqh r0, [r1]
|
|
ldrneh r0, [r1]
|
|
orrne r0, r0, #6
|
|
strneh r0, [r1]
|
|
bl sub_027E9BCC
|
|
mov r0, #0
|
|
_027E9328:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9330: .word 0x0380FFF4
|
|
_027E9334: .word 0x048080BC
|
|
arm_func_end sub_027E9290
|
|
|
|
arm_func_start sub_027E9338
|
|
sub_027E9338: ; 0x027E9338
|
|
cmp r0, #1
|
|
ldrls r1, _027E9358 ; =0x0380FFF4
|
|
movhi r0, #5
|
|
ldrls r1, [r1]
|
|
addls r1, r1, #0x300
|
|
strlsh r0, [r1, #0x32]
|
|
movls r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9358: .word 0x0380FFF4
|
|
arm_func_end sub_027E9338
|
|
|
|
arm_func_start sub_027E935C
|
|
sub_027E935C: ; 0x027E935C
|
|
stmdb sp!, {r4, lr}
|
|
cmp r0, #3
|
|
mov r4, r1
|
|
movhi r0, #5
|
|
bhi _027E9398
|
|
cmp r4, #0x3f
|
|
movhi r0, #5
|
|
bhi _027E9398
|
|
mov r1, r0
|
|
mov r0, #0x13
|
|
bl sub_027EA5F0
|
|
mov r1, r4
|
|
mov r0, #0x35
|
|
bl sub_027EA5F0
|
|
mov r0, #0
|
|
_027E9398:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027E935C
|
|
|
|
arm_func_start sub_027E93A0
|
|
sub_027E93A0: ; 0x027E93A0
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r3, _027E9400 ; =0x0380FFF4
|
|
mov r0, r0, lsl #0x10
|
|
ldr r2, [r3]
|
|
mov r1, r0, lsr #0x10
|
|
add r0, r2, #0x300
|
|
ldrh r2, [r0, #0x3a]
|
|
mov r1, r1, lsl #0x1f
|
|
bic r2, r2, #8
|
|
orr r1, r2, r1, lsr #28
|
|
strh r1, [r0, #0x3a]
|
|
ldr r0, [r3]
|
|
ldr r1, _027E9404 ; =0x04808290
|
|
add r0, r0, #0x300
|
|
ldrh r3, [r0, #0x3a]
|
|
mov r0, #0
|
|
mov r2, r3, lsl #0x1c
|
|
mov r3, r3, lsl #0x1a
|
|
mov r2, r2, lsr #0x1f
|
|
eor r2, r2, r3, lsr #31
|
|
strh r2, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9400: .word 0x0380FFF4
|
|
_027E9404: .word 0x04808290
|
|
arm_func_end sub_027E93A0
|
|
|
|
arm_func_start sub_027E9408
|
|
sub_027E9408: ; 0x027E9408
|
|
cmp r0, #1
|
|
cmpls r1, #1
|
|
movhi r0, #5
|
|
bxhi lr
|
|
cmp r0, #0
|
|
beq _027E942C
|
|
cmp r0, #1
|
|
beq _027E9458
|
|
b _027E9480
|
|
_027E942C:
|
|
ldr r2, _027E94D4 ; =0x0380FFF4
|
|
mov r1, r1, lsl #0x10
|
|
ldr r3, [r2]
|
|
mov r2, r1, lsr #0x10
|
|
add r1, r3, #0x300
|
|
ldrh r3, [r1, #0x3a]
|
|
mov r2, r2, lsl #0x1f
|
|
bic r3, r3, #0x20
|
|
orr r2, r3, r2, lsr #26
|
|
strh r2, [r1, #0x3a]
|
|
b _027E9480
|
|
_027E9458:
|
|
ldr r1, _027E94D4 ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
ldrh r2, [r1, #0x2e]
|
|
cmp r2, #1
|
|
movne r0, #0xb
|
|
bxne lr
|
|
ldrh r2, [r1, #0x3a]
|
|
bic r2, r2, #0x20
|
|
strh r2, [r1, #0x3a]
|
|
_027E9480:
|
|
ldr r3, _027E94D4 ; =0x0380FFF4
|
|
mov r0, r0, lsl #0x10
|
|
ldr r2, [r3]
|
|
mov r1, r0, lsr #0x10
|
|
add r0, r2, #0x300
|
|
ldrh r2, [r0, #0x3a]
|
|
mov r1, r1, lsl #0x1f
|
|
bic r2, r2, #0x10
|
|
orr r1, r2, r1, lsr #27
|
|
strh r1, [r0, #0x3a]
|
|
ldr r0, [r3]
|
|
ldr r1, _027E94D8 ; =0x04808290
|
|
add r0, r0, #0x300
|
|
ldrh r3, [r0, #0x3a]
|
|
mov r0, #0
|
|
mov r2, r3, lsl #0x1c
|
|
mov r3, r3, lsl #0x1a
|
|
mov r2, r2, lsr #0x1f
|
|
eor r2, r2, r3, lsr #31
|
|
strh r2, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E94D4: .word 0x0380FFF4
|
|
_027E94D8: .word 0x04808290
|
|
arm_func_end sub_027E9408
|
|
|
|
arm_func_start sub_027E94DC
|
|
sub_027E94DC: ; 0x027E94DC
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r1, _027E9518 ; =0x0380FFF4
|
|
mov r0, r0, lsl #0x10
|
|
ldr r2, [r1]
|
|
mov r1, r0, lsr #0x10
|
|
add r0, r2, #0x300
|
|
ldrh r2, [r0, #0x3a]
|
|
mov r1, r1, lsl #0x1f
|
|
bic r2, r2, #0x40
|
|
orr r1, r2, r1, lsr #25
|
|
strh r1, [r0, #0x3a]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9518: .word 0x0380FFF4
|
|
arm_func_end sub_027E94DC
|
|
|
|
arm_func_start sub_027E951C
|
|
sub_027E951C: ; 0x027E951C
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r2, _027E9564 ; =0x0380FFF4
|
|
mov r1, r0, lsl #0x10
|
|
ldr r3, [r2]
|
|
mov r2, r1, lsr #0x10
|
|
add r1, r3, #0x300
|
|
ldrh r3, [r1, #0x3a]
|
|
mov r2, r2, lsl #0x1f
|
|
bic r3, r3, #0x80
|
|
orr r2, r3, r2, lsr #24
|
|
strh r2, [r1, #0x3a]
|
|
ldreq r1, _027E9568 ; =0x0480802A
|
|
ldreqh r0, [r1]
|
|
streqh r0, [r1, #-2]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9564: .word 0x0380FFF4
|
|
_027E9568: .word 0x0480802A
|
|
arm_func_end sub_027E951C
|
|
|
|
arm_func_start sub_027E956C
|
|
sub_027E956C: ; 0x027E956C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _027E95C4 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
mov r1, r4
|
|
add r0, r0, #0x3a8
|
|
bl sub_027EA0E0
|
|
ldr r0, _027E95C8 ; =0x04808020
|
|
mov r1, r4
|
|
bl sub_027EA0E0
|
|
ldrh r0, [r4]
|
|
ldr r1, _027E95CC ; =0x048080D0
|
|
tst r0, #1
|
|
ldrneh r0, [r1]
|
|
bicne r0, r0, #0x400
|
|
strneh r0, [r1]
|
|
ldreqh r0, [r1]
|
|
orreq r0, r0, #0x400
|
|
streqh r0, [r1]
|
|
mov r0, #0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E95C4: .word 0x0380FFF4
|
|
_027E95C8: .word 0x04808020
|
|
_027E95CC: .word 0x048080D0
|
|
arm_func_end sub_027E956C
|
|
|
|
arm_func_start sub_027E95D0
|
|
sub_027E95D0: ; 0x027E95D0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r2, _027E96DC ; =0x0380FFF4
|
|
mov r8, r0
|
|
ldr r2, [r2]
|
|
cmp r8, #0x20
|
|
mov r7, r1
|
|
add r4, r2, #0x344
|
|
mov r6, #0
|
|
movhi r0, #5
|
|
bhi _027E96D4
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x40
|
|
addeq r0, r2, #0x300
|
|
ldreqh r0, [r0, #0x2e]
|
|
cmpeq r0, #1
|
|
bne _027E962C
|
|
ldrh r0, [r4, #0x1e]
|
|
cmp r0, r8
|
|
movne r0, #6
|
|
bne _027E96D4
|
|
ldrh r0, [r4, #0x92]
|
|
cmp r0, #0
|
|
movne r6, #1
|
|
_027E962C:
|
|
mov r5, #0
|
|
add sb, r4, #0x20
|
|
b _027E9654
|
|
_027E9638:
|
|
mov r0, r7
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
add r0, sb, r5
|
|
bl sub_027EAD24
|
|
add r7, r7, #1
|
|
add r5, r5, #1
|
|
_027E9654:
|
|
cmp r5, r8
|
|
blo _027E9638
|
|
add sb, r4, #0x20
|
|
mov r7, #0
|
|
b _027E9678
|
|
_027E9668:
|
|
mov r1, r7
|
|
add r0, sb, r5
|
|
bl sub_027EAD24
|
|
add r5, r5, #1
|
|
_027E9678:
|
|
cmp r5, #0x20
|
|
blo _027E9668
|
|
strh r8, [r4, #0x1e]
|
|
cmp r6, #0
|
|
beq _027E96D0
|
|
ldr r1, _027E96DC ; =0x0380FFF4
|
|
ldrh r0, [r4, #0x92]
|
|
ldr r1, [r1]
|
|
mov r5, #0
|
|
ldr r1, [r1, #0x4ac]
|
|
add r4, r4, #0x20
|
|
add r1, r1, #0x26
|
|
add r6, r1, r0
|
|
b _027E96C8
|
|
_027E96B0:
|
|
add r0, r4, r5
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
add r0, r6, r5
|
|
bl sub_027EAD24
|
|
add r5, r5, #1
|
|
_027E96C8:
|
|
cmp r5, r8
|
|
blo _027E96B0
|
|
_027E96D0:
|
|
mov r0, #0
|
|
_027E96D4:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E96DC: .word 0x0380FFF4
|
|
arm_func_end sub_027E95D0
|
|
|
|
arm_func_start sub_027E96E0
|
|
sub_027E96E0: ; 0x027E96E0
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #0xa
|
|
blo _027E96F4
|
|
cmp r0, #0x3e8
|
|
bls _027E96FC
|
|
_027E96F4:
|
|
mov r0, #5
|
|
b _027E9728
|
|
_027E96FC:
|
|
ldr r3, _027E9730 ; =0x0380FFF4
|
|
ldr r2, _027E9734 ; =0x0480808C
|
|
ldr r1, [r3]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0xb2]
|
|
strh r0, [r2]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x38]
|
|
bl sub_027E9E30
|
|
mov r0, #0
|
|
_027E9728:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9730: .word 0x0380FFF4
|
|
_027E9734: .word 0x0480808C
|
|
arm_func_end sub_027E96E0
|
|
|
|
arm_func_start sub_027E9738
|
|
sub_027E9738: ; 0x027E9738
|
|
cmp r0, #1
|
|
blo _027E9748
|
|
cmp r0, #0xff
|
|
bls _027E9750
|
|
_027E9748:
|
|
mov r0, #5
|
|
bx lr
|
|
_027E9750:
|
|
ldr r1, _027E9774 ; =0x0380FFF4
|
|
ldr r2, _027E9778 ; =0x0480808E
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0xb8]
|
|
strh r0, [r2]
|
|
mov r0, #0
|
|
strh r0, [r2, #-6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9774: .word 0x0380FFF4
|
|
_027E9778: .word 0x0480808E
|
|
arm_func_end sub_027E9738
|
|
|
|
arm_func_start sub_027E977C
|
|
sub_027E977C: ; 0x027E977C
|
|
cmp r0, #1
|
|
blo _027E978C
|
|
cmp r0, #0xff
|
|
bls _027E9794
|
|
_027E978C:
|
|
mov r0, #5
|
|
bx lr
|
|
_027E9794:
|
|
ldr r1, _027E97AC ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0xb4]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027E97AC: .word 0x0380FFF4
|
|
arm_func_end sub_027E977C
|
|
|
|
arm_func_start sub_027E97B0
|
|
sub_027E97B0: ; 0x027E97B0
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
add r2, sp, #2
|
|
mov r0, #0x36
|
|
mov r1, #6
|
|
bl sub_027F4E10
|
|
add r2, sp, #0
|
|
mov r0, #0x3c
|
|
mov r1, #2
|
|
bl sub_027F4E10
|
|
add r0, sp, #2
|
|
bl sub_027E8E5C
|
|
mov r0, #7
|
|
bl sub_027E8EBC
|
|
ldrh r1, [sp]
|
|
ldr r0, _027E98E4 ; =0x00007FFE
|
|
and r0, r1, r0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027E8EF0
|
|
mov r0, #2
|
|
bl sub_027E8F30
|
|
mov r0, #0
|
|
bl sub_027E8FB0
|
|
mov r0, #0
|
|
bl sub_027E8FE4
|
|
mov r0, #0
|
|
bl sub_027E9084
|
|
ldr r0, _027E98E8 ; =0x027F7300
|
|
bl sub_027E90A8
|
|
mov r0, #0x1f4
|
|
bl sub_027E96E0
|
|
mov r0, #0
|
|
bl sub_027E9108
|
|
mov r0, #0
|
|
bl sub_027E9140
|
|
mov r0, #0x10
|
|
bl sub_027E9178
|
|
ldr r0, _027E98EC ; =0x0000FFFF
|
|
mov r1, #0
|
|
bl sub_027E91B0
|
|
ldr r0, _027E98F0 ; =0x027F72A0
|
|
bl sub_027E9260
|
|
mov r0, #1
|
|
bl sub_027E9290
|
|
mov r0, #0
|
|
bl sub_027E9338
|
|
ldr r0, _027E98F4 ; =0x027F729C
|
|
bl sub_027E9B8C
|
|
mov r0, #0
|
|
mov r1, #0x1f
|
|
bl sub_027E935C
|
|
mov r0, #5
|
|
bl sub_027E9E30
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl sub_027E9408
|
|
mov r0, #0
|
|
bl sub_027E93A0
|
|
mov r0, #0
|
|
bl sub_027E94DC
|
|
mov r0, #0
|
|
bl sub_027E951C
|
|
ldr r1, _027E98F8 ; =0x04808044
|
|
ldrh r2, [r1]
|
|
ldrh r0, [r1]
|
|
ldrh r1, [r1]
|
|
add r0, r2, r0, lsl #8
|
|
bl sub_027EAD6C
|
|
ldr r0, _027E98FC ; =0x0380FFF4
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
strh r1, [r0, #0x58]
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E98E4: .word 0x00007FFE
|
|
_027E98E8: .word 0x027F7300
|
|
_027E98EC: .word 0x0000FFFF
|
|
_027E98F0: .word 0x027F72A0
|
|
_027E98F4: .word 0x027F729C
|
|
_027E98F8: .word 0x04808044
|
|
_027E98FC: .word 0x0380FFF4
|
|
arm_func_end sub_027E97B0
|
|
|
|
arm_func_start sub_027E9900
|
|
sub_027E9900: ; 0x027E9900
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #8
|
|
mov sl, r0
|
|
ldr r0, _027E9B7C ; =0x0380FFF4
|
|
cmp r1, #0
|
|
ldr r0, [r0]
|
|
ldrne sb, _027E9B80 ; =0x027F4E70
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x2c]
|
|
ldreq sb, _027E9B84 ; =sub_027F4E10
|
|
mov r2, #1
|
|
tst r0, r2, lsl sl
|
|
moveq r0, #5
|
|
beq _027E9B70
|
|
ldr r1, _027E9B88 ; =0x04808040
|
|
add r0, r2, #0x8000
|
|
ldrh r6, [r1]
|
|
strh r0, [r1]
|
|
sub r3, r1, #4
|
|
add r1, r1, #0x1d4
|
|
_027E9950:
|
|
ldrh r2, [r3]
|
|
ldrh r0, [r1]
|
|
mov r2, r2, asr #8
|
|
cmp r2, #2
|
|
bne _027E9950
|
|
cmp r0, #0
|
|
cmpne r0, #9
|
|
bne _027E9950
|
|
ldr r5, _027E9B7C ; =0x0380FFF4
|
|
ldr r0, [r5]
|
|
add r0, r0, #0x300
|
|
strh sl, [r0, #0xbe]
|
|
ldr r0, [r5]
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0xf8]
|
|
cmp r1, #2
|
|
beq _027E99A4
|
|
cmp r1, #3
|
|
beq _027E9A74
|
|
cmp r1, #5
|
|
bne _027E9B5C
|
|
_027E99A4:
|
|
sub r4, sl, #1
|
|
mov r0, #6
|
|
mul r5, r4, r0
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
add r2, sp, #4
|
|
add r0, r5, #0xf2
|
|
mov r1, #3
|
|
mov lr, pc
|
|
bx sb
|
|
_027E99CC:
|
|
ldr r0, [sp, #4]
|
|
bl sub_027EA620
|
|
add r2, sp, #4
|
|
add r0, r5, #0xf5
|
|
mov r1, #3
|
|
mov lr, pc
|
|
bx sb
|
|
_027E99E8:
|
|
ldr r0, [sp, #4]
|
|
bl sub_027EA620
|
|
mov r1, #0
|
|
ldr r0, _027E9B7C ; =0x0380FFF4
|
|
str r1, [sp, #4]
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x604]
|
|
tst r0, #0x10000
|
|
beq _027E9A4C
|
|
tst r0, #0x8000
|
|
bne _027E9B5C
|
|
add r2, sp, #4
|
|
add r0, r4, #0x154
|
|
mov r1, #1
|
|
mov lr, pc
|
|
bx sb
|
|
sub_027E9A28: ; 0x027E9A28
|
|
ldr r1, _027E9B7C ; =0x0380FFF4
|
|
ldr r0, [sp, #4]
|
|
ldr r1, [r1]
|
|
mov r0, r0, lsl #0x1b
|
|
ldr r1, [r1, #0x604]
|
|
orr r0, r1, r0, lsr #17
|
|
str r0, [sp, #4]
|
|
bl sub_027EA620
|
|
b _027E9B5C
|
|
_027E9A4C:
|
|
add r0, r4, #0x46
|
|
add r2, sp, #4
|
|
add r0, r0, #0x100
|
|
mov r1, #1
|
|
mov lr, pc
|
|
bx sb
|
|
_027E9A64:
|
|
ldr r1, [sp, #4]
|
|
mov r0, #0x1e
|
|
bl sub_027EA5F0
|
|
b _027E9B5C
|
|
_027E9A74:
|
|
ldrh r0, [r0, #0xfc]
|
|
mov r8, #0
|
|
add r7, r0, #0xcf
|
|
mov r4, r8
|
|
mov fp, #1
|
|
b _027E9AD0
|
|
_027E9A8C:
|
|
mov r0, r7
|
|
mov r1, fp
|
|
add r2, sp, #0
|
|
str r4, [sp, #4]
|
|
str r4, [sp]
|
|
mov lr, pc
|
|
bx sb
|
|
_027E9AA8:
|
|
add r0, r7, sl
|
|
mov r1, #1
|
|
add r2, sp, #4
|
|
mov lr, pc
|
|
bx sb
|
|
_027E9ABC:
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, #4]
|
|
bl sub_027EA5F0
|
|
add r7, r7, #0xf
|
|
add r8, r8, #1
|
|
_027E9AD0:
|
|
ldr r0, [r5]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0]
|
|
cmp r8, r0
|
|
blo _027E9A8C
|
|
mov r8, #0
|
|
ldr r4, _027E9B7C ; =0x0380FFF4
|
|
mov r5, r8
|
|
mov fp, #1
|
|
b _027E9B48
|
|
_027E9AF8:
|
|
str r5, [sp, #4]
|
|
mov r0, r7
|
|
mov r1, fp
|
|
add r2, sp, #4
|
|
mov lr, pc
|
|
bx sb
|
|
_027E9B10:
|
|
ldr r1, [sp, #4]
|
|
add r0, r7, sl
|
|
mov r1, r1, lsl #8
|
|
str r1, [sp, #4]
|
|
mov r1, #1
|
|
add r2, sp, #4
|
|
mov lr, pc
|
|
bx sb
|
|
_027E9B30:
|
|
ldr r0, [sp, #4]
|
|
orr r0, r0, #0x50000
|
|
str r0, [sp, #4]
|
|
bl sub_027EA620
|
|
add r7, r7, #0xf
|
|
add r8, r8, #1
|
|
_027E9B48:
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x500
|
|
ldrh r0, [r0, #0xfe]
|
|
cmp r8, r0
|
|
blo _027E9AF8
|
|
_027E9B5C:
|
|
ldr r1, _027E9B88 ; =0x04808040
|
|
mov r0, #3
|
|
strh r6, [r1]
|
|
strh r0, [r1, #8]
|
|
mov r0, #0
|
|
_027E9B70:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9B7C: .word 0x0380FFF4
|
|
_027E9B80: .word 0x027F4E70
|
|
_027E9B84: .word sub_027F4E10
|
|
_027E9B88: .word 0x04808040
|
|
arm_func_end sub_027E9900
|
|
|
|
arm_func_start sub_027E9B8C
|
|
sub_027E9B8C: ; 0x027E9B8C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _027E9BC8 ; =0x0380FFF4
|
|
ldrh r2, [r0]
|
|
ldr r3, [r1]
|
|
add r1, r3, #0x300
|
|
strh r2, [r1, #0xa4]
|
|
ldrh r1, [r0, #2]
|
|
ldrh r0, [r0]
|
|
add r2, r3, #0x3a4
|
|
orr r0, r1, r0
|
|
strh r0, [r2, #2]
|
|
bl sub_027E9BCC
|
|
mov r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9BC8: .word 0x0380FFF4
|
|
arm_func_end sub_027E9B8C
|
|
|
|
arm_func_start sub_027E9BCC
|
|
sub_027E9BCC: ; 0x027E9BCC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027E9C40 ; =0x0000E2E2
|
|
add r2, sp, #0
|
|
str r0, [sp]
|
|
mov r0, #0x58
|
|
mov r1, #2
|
|
bl sub_027F4E10
|
|
ldr r0, [sp]
|
|
add r0, r0, #2
|
|
add r0, r0, #0x200
|
|
str r0, [sp]
|
|
bl sub_027EA578
|
|
cmp r0, #0x14
|
|
bne _027E9C2C
|
|
ldr r1, [sp]
|
|
ldr r0, _027E9C44 ; =0x048080BC
|
|
sub r1, r1, #0x61
|
|
sub r1, r1, #0x6100
|
|
str r1, [sp]
|
|
ldrh r0, [r0]
|
|
tst r0, #2
|
|
subne r0, r1, #0x60
|
|
subne r0, r0, #0x6000
|
|
strne r0, [sp]
|
|
_027E9C2C:
|
|
ldr r1, [sp]
|
|
ldr r0, _027E9C48 ; =0x04808140
|
|
strh r1, [r0]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9C40: .word 0x0000E2E2
|
|
_027E9C44: .word 0x048080BC
|
|
_027E9C48: .word 0x04808140
|
|
arm_func_end sub_027E9BCC
|
|
|
|
arm_func_start sub_027E9C4C
|
|
sub_027E9C4C: ; 0x027E9C4C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _027E9CAC ; =0x0380FFF4
|
|
cmp r0, #0
|
|
ldr r2, [r1]
|
|
add r1, r2, #0x300
|
|
add r3, r2, #0x31c
|
|
strh r0, [r1, #0x52]
|
|
ldrneh r0, [r3, #0x12]
|
|
cmpne r0, #1
|
|
ldrne r1, _027E9CB0 ; =0x04808006
|
|
ldrneh r0, [r1]
|
|
orrne r0, r0, #0x40
|
|
strneh r0, [r1]
|
|
bne _027E9CA0
|
|
ldr r2, _027E9CB0 ; =0x04808006
|
|
mov r1, #0
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #0x40
|
|
strh r0, [r2]
|
|
ldrh r0, [r3, #0x20]
|
|
bl sub_027E91B0
|
|
_027E9CA0:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9CAC: .word 0x0380FFF4
|
|
_027E9CB0: .word 0x04808006
|
|
arm_func_end sub_027E9C4C
|
|
|
|
arm_func_start sub_027E9CB4
|
|
sub_027E9CB4: ; 0x027E9CB4
|
|
ldr r1, _027E9CD8 ; =0x0380FFF4
|
|
ldr r2, _027E9CDC ; =0x0480803C
|
|
ldr r1, [r1]
|
|
mov r3, r0, lsr #1
|
|
add r1, r1, #0x300
|
|
strh r3, [r1, #0x54]
|
|
strh r0, [r2]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9CD8: .word 0x0380FFF4
|
|
_027E9CDC: .word 0x0480803C
|
|
arm_func_end sub_027E9CB4
|
|
|
|
arm_func_start sub_027E9CE0
|
|
sub_027E9CE0: ; 0x027E9CE0
|
|
ldr r1, _027E9CF0 ; =0x04808040
|
|
strh r0, [r1]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9CF0: .word 0x04808040
|
|
arm_func_end sub_027E9CE0
|
|
|
|
arm_func_start sub_027E9CF4
|
|
sub_027E9CF4: ; 0x027E9CF4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027E9D5C ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x500
|
|
ldrh r0, [r0, #0xf8]
|
|
cmp r0, #2
|
|
bne _027E9D18
|
|
ldr r0, _027E9D60 ; =0x0000C008
|
|
bl sub_027EA620
|
|
_027E9D18:
|
|
ldr r1, _027E9D64 ; =0x0000601E
|
|
ldr r0, _027E9D68 ; =0x04808158
|
|
strh r1, [r0]
|
|
bl sub_037FB420
|
|
ldr r1, _027E9D6C ; =0x0480815C
|
|
mov r0, #0x1e
|
|
ldrh r1, [r1]
|
|
orr r1, r1, #0x3f
|
|
bl sub_027EA5F0
|
|
ldr r2, _027E9D70 ; =0x0000800D
|
|
ldr r1, _027E9D74 ; =0x04808168
|
|
ldr r0, _027E9D78 ; =0x04808036
|
|
strh r2, [r1]
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9D5C: .word 0x0380FFF4
|
|
_027E9D60: .word 0x0000C008
|
|
_027E9D64: .word 0x0000601E
|
|
_027E9D68: .word 0x04808158
|
|
_027E9D6C: .word 0x0480815C
|
|
_027E9D70: .word 0x0000800D
|
|
_027E9D74: .word 0x04808168
|
|
_027E9D78: .word 0x04808036
|
|
arm_func_end sub_027E9CF4
|
|
|
|
arm_func_start sub_027E9D7C
|
|
sub_027E9D7C: ; 0x027E9D7C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _027E9E14 ; =0x04808036
|
|
mov r3, #0
|
|
ldr r1, _027E9E18 ; =0x027EA99C
|
|
mov r0, #0x1f40
|
|
strh r3, [r2]
|
|
bl sub_037FB32C
|
|
ldr r1, _027E9E1C ; =0x04808168
|
|
mov r2, #0
|
|
ldr r0, _027E9E20 ; =0x0380FFF4
|
|
strh r2, [r1]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x500
|
|
ldrh r0, [r0, #0xf8]
|
|
cmp r0, #2
|
|
beq _027E9DC8
|
|
cmp r0, #3
|
|
beq _027E9E08
|
|
b _027E9E0C
|
|
_027E9DC8:
|
|
ldr r0, _027E9E24 ; =0x00006001
|
|
strh r0, [r1, #-0x10]
|
|
bl sub_037FB420
|
|
ldr r1, _027E9E28 ; =0x0480815C
|
|
mov r0, #1
|
|
ldrh r4, [r1]
|
|
and r1, r4, #0x7f
|
|
bl sub_027EA5F0
|
|
mov r1, r4
|
|
mov r0, #1
|
|
bl sub_027EA5F0
|
|
ldr r0, _027E9E2C ; =0x00009C40
|
|
ldr r1, _027E9E18 ; =0x027EA99C
|
|
bl sub_037FB32C
|
|
bl sub_027EA7C0
|
|
b _027E9E0C
|
|
_027E9E08:
|
|
bl sub_027EA7C0
|
|
_027E9E0C:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9E14: .word 0x04808036
|
|
_027E9E18: .word 0x027EA99C
|
|
_027E9E1C: .word 0x04808168
|
|
_027E9E20: .word 0x0380FFF4
|
|
_027E9E24: .word 0x00006001
|
|
_027E9E28: .word 0x0480815C
|
|
_027E9E2C: .word 0x00009C40
|
|
arm_func_end sub_027E9D7C
|
|
|
|
arm_func_start sub_027E9E30
|
|
sub_027E9E30: ; 0x027E9E30
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _027E9E8C ; =0x0380FFF4
|
|
ldr r1, _027E9E90 ; =0x0000FFFF
|
|
ldr r2, [r2]
|
|
mov r6, r0
|
|
add r5, r2, #0x31c
|
|
cmp r6, r1
|
|
streqh r1, [r5, #0x1c]
|
|
add r4, r2, #0x344
|
|
streqh r1, [r4, #0x8c]
|
|
beq _027E9E80
|
|
ldrh r0, [r4, #0x6e]
|
|
mov r1, #0x64
|
|
mul r0, r6, r0
|
|
bl sub_03806DD4
|
|
cmp r0, #0x10000
|
|
movhi r0, #5
|
|
bhi _027E9E84
|
|
strh r6, [r5, #0x1c]
|
|
strh r0, [r4, #0x8c]
|
|
_027E9E80:
|
|
mov r0, #0
|
|
_027E9E84:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9E8C: .word 0x0380FFF4
|
|
_027E9E90: .word 0x0000FFFF
|
|
arm_func_end sub_027E9E30
|
|
|
|
arm_func_start sub_027E9E94
|
|
sub_027E9E94: ; 0x027E9E94
|
|
ldr r1, _027E9ED8 ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x300
|
|
strh r2, [r0, #0xea]
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x400
|
|
ldrh r0, [r0, #0x68]
|
|
cmp r0, #0
|
|
bxne lr
|
|
ldr r2, _027E9EDC ; =0x04808038
|
|
mov r0, #0
|
|
ldrh r1, [r2]
|
|
bic r1, r1, #2
|
|
strh r1, [r2]
|
|
strh r0, [r2, #0x10]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9ED8: .word 0x0380FFF4
|
|
_027E9EDC: .word 0x04808038
|
|
arm_func_end sub_027E9E94
|
|
|
|
arm_func_start sub_027E9EE0
|
|
sub_027E9EE0: ; 0x027E9EE0
|
|
ldr r0, _027E9F08 ; =0x0380FFF4
|
|
ldr r1, _027E9F0C ; =0x04808038
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
add r0, r0, #0x300
|
|
strh r2, [r0, #0xea]
|
|
ldrh r0, [r1]
|
|
orr r0, r0, #2
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9F08: .word 0x0380FFF4
|
|
_027E9F0C: .word 0x04808038
|
|
arm_func_end sub_027E9EE0
|
|
|
|
arm_func_start sub_027E9F10
|
|
sub_027E9F10: ; 0x027E9F10
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _027E9F50 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r2]
|
|
cmp r5, #0x80
|
|
add r4, r0, #0x344
|
|
movhi r0, #4
|
|
bhi _027E9F48
|
|
mov r0, r1
|
|
ldr r1, [r4, #0x9c]
|
|
add r2, r5, #1
|
|
bl sub_037FDF9C
|
|
strh r5, [r4, #0xa0]
|
|
mov r0, #0
|
|
_027E9F48:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9F50: .word 0x0380FFF4
|
|
arm_func_end sub_027E9F10
|
|
|
|
arm_func_start sub_027E9F54
|
|
sub_027E9F54: ; 0x027E9F54
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r2, _027E9FFC ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r2]
|
|
mov r8, r1
|
|
cmp r4, #0x80
|
|
add r5, r0, #0x344
|
|
movhi r0, #4
|
|
bhi _027E9FF4
|
|
cmp r4, #0
|
|
beq _027E9FE4
|
|
ldrh r0, [r5, #0xa2]
|
|
tst r0, #1
|
|
beq _027E9FD4
|
|
ldr r6, [r5, #0x9c]
|
|
mov r1, #0xff
|
|
mov r0, r6
|
|
bl sub_027EAD24
|
|
add r6, r6, #1
|
|
mov r7, #0
|
|
b _027E9FC8
|
|
_027E9FA8:
|
|
mov r0, r8
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
mov r0, r6
|
|
bl sub_027EAD24
|
|
add r6, r6, #1
|
|
add r8, r8, #1
|
|
add r7, r7, #1
|
|
_027E9FC8:
|
|
cmp r7, r4
|
|
blo _027E9FA8
|
|
b _027E9FE4
|
|
_027E9FD4:
|
|
ldr r1, [r5, #0x9c]
|
|
mov r0, r8
|
|
add r2, r4, #1
|
|
bl sub_037FDF9C
|
|
_027E9FE4:
|
|
strh r4, [r5, #0xa0]
|
|
mov r0, #1
|
|
strh r0, [r5, #0xa4]
|
|
mov r0, #0
|
|
_027E9FF4:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027E9FFC: .word 0x0380FFF4
|
|
arm_func_end sub_027E9F54
|
|
|
|
arm_func_start sub_027EA000
|
|
sub_027EA000: ; 0x027EA000
|
|
ldr r3, _027EA034 ; =0x0380FFF4
|
|
ldr r2, _027EA038 ; =0x0480802A
|
|
ldr r1, [r3]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0xae]
|
|
strh r0, [r2]
|
|
ldr r1, [r3]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x3a]
|
|
mov r1, r1, lsl #0x18
|
|
movs r1, r1, lsr #0x1f
|
|
strneh r0, [r2, #-2]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA034: .word 0x0380FFF4
|
|
_027EA038: .word 0x0480802A
|
|
arm_func_end sub_027EA000
|
|
|
|
arm_func_start sub_027EA03C
|
|
sub_027EA03C: ; 0x027EA03C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _027EA090 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
add r4, r1, #0x344
|
|
strh r0, [r4, #0x6a]
|
|
bl sub_037FB3B4
|
|
ldr r0, _027EA094 ; =0x0480802A
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, #0x88]
|
|
cmp r0, #0
|
|
beq _027EA088
|
|
bl sub_027F0D60
|
|
ldrh r0, [r4, #0x88]
|
|
mov r1, #0x20
|
|
bl sub_027EBC44
|
|
mov r0, #0
|
|
strh r0, [r4, #0x88]
|
|
_027EA088:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA090: .word 0x0380FFF4
|
|
_027EA094: .word 0x0480802A
|
|
arm_func_end sub_027EA03C
|
|
|
|
arm_func_start sub_027EA098
|
|
sub_027EA098: ; 0x027EA098
|
|
ldr r0, _027EA0B4 ; =0x0380FFF4
|
|
ldr r1, _027EA0B8 ; =0x04808028
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0xae]
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA0B4: .word 0x0380FFF4
|
|
_027EA0B8: .word 0x04808028
|
|
arm_func_end sub_027EA098
|
|
|
|
arm_func_start sub_027EA0BC
|
|
sub_027EA0BC: ; 0x027EA0BC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027EA0DC ; =0x04808094
|
|
ldrh r0, [r0]
|
|
tst r0, #0x8000
|
|
bne _027EA0D4
|
|
bl sub_037FB3B4
|
|
_027EA0D4:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA0DC: .word 0x04808094
|
|
arm_func_end sub_027EA0BC
|
|
|
|
arm_func_start sub_027EA0E0
|
|
sub_027EA0E0: ; 0x027EA0E0
|
|
ldrh r2, [r1]
|
|
strh r2, [r0]
|
|
ldrh r2, [r1, #2]
|
|
strh r2, [r0, #2]
|
|
ldrh r1, [r1, #4]
|
|
strh r1, [r0, #4]
|
|
bx lr
|
|
arm_func_end sub_027EA0E0
|
|
|
|
arm_func_start sub_027EA0FC
|
|
sub_027EA0FC: ; 0x027EA0FC
|
|
ldrh r3, [r1]
|
|
strh r3, [r0]
|
|
ldrh r3, [r1, #2]
|
|
strh r3, [r0, #2]
|
|
ldrh r1, [r1, #4]
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r2]
|
|
strh r1, [r0, #6]
|
|
ldrh r1, [r2, #2]
|
|
strh r1, [r0, #8]
|
|
ldrh r1, [r2, #4]
|
|
strh r1, [r0, #0xa]
|
|
bx lr
|
|
arm_func_end sub_027EA0FC
|
|
|
|
arm_func_start sub_027EA130
|
|
sub_027EA130: ; 0x027EA130
|
|
ldrh ip, [r1]
|
|
strh ip, [r0]
|
|
ldrh ip, [r1, #2]
|
|
strh ip, [r0, #2]
|
|
ldrh r1, [r1, #4]
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r2]
|
|
strh r1, [r0, #6]
|
|
ldrh r1, [r2, #2]
|
|
strh r1, [r0, #8]
|
|
ldrh r1, [r2, #4]
|
|
strh r1, [r0, #0xa]
|
|
ldrh r1, [r3]
|
|
strh r1, [r0, #0xc]
|
|
ldrh r1, [r3, #2]
|
|
strh r1, [r0, #0xe]
|
|
ldrh r1, [r3, #4]
|
|
strh r1, [r0, #0x10]
|
|
bx lr
|
|
arm_func_end sub_027EA130
|
|
|
|
arm_func_start sub_027EA17C
|
|
sub_027EA17C: ; 0x027EA17C
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_027EA1AC
|
|
ldr r1, _027EA1A8 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
mov r2, #0xb4
|
|
add r1, r1, #0x13c
|
|
add r1, r1, #0x400
|
|
bl sub_037FDFD0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA1A8: .word 0x0380FFF4
|
|
arm_func_end sub_027EA17C
|
|
|
|
arm_func_start sub_027EA1AC
|
|
sub_027EA1AC: ; 0x027EA1AC
|
|
ldr r1, _027EA39C ; =0x0380FFF4
|
|
ldr r0, _027EA3A0 ; =0x048081B0
|
|
ldr r1, [r1]
|
|
ldrh r2, [r0]
|
|
ldr r3, [r1, #0x58c]
|
|
and r2, r2, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x58c]
|
|
ldrh ip, [r0, #2]
|
|
ldr r3, [r1, #0x588]
|
|
and r2, ip, #0xff
|
|
add r3, r3, ip, asr #8
|
|
str r3, [r1, #0x588]
|
|
ldr r3, [r1, #0x598]
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x598]
|
|
ldrh ip, [r0, #4]
|
|
ldr r3, [r1, #0x594]
|
|
and r2, ip, #0xff
|
|
add r3, r3, ip, asr #8
|
|
str r3, [r1, #0x594]
|
|
ldr r3, [r1, #0x590]
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x590]
|
|
ldrh ip, [r0, #6]
|
|
ldr r3, [r1, #0x59c]
|
|
and r2, ip, #0xff
|
|
add r3, r3, ip, asr #8
|
|
str r3, [r1, #0x59c]
|
|
ldr r3, [r1, #0x574]
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x574]
|
|
ldrh r2, [r0, #8]
|
|
ldr r3, [r1, #0x584]
|
|
and r2, r2, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x584]
|
|
ldrh r2, [r0, #0xa]
|
|
ldr r3, [r1, #0x55c]
|
|
and r2, r2, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x55c]
|
|
ldrh ip, [r0, #0xc]
|
|
ldr r3, [r1, #0x56c]
|
|
and r2, ip, #0xff
|
|
add r3, r3, ip, asr #8
|
|
str r3, [r1, #0x56c]
|
|
ldr r3, [r1, #0x580]
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x580]
|
|
ldrh ip, [r0, #0xe]
|
|
ldr r3, [r1, #0x578]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x578]
|
|
ldr r2, [r1, #0x57c]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x57c]
|
|
ldrh r2, [r0, #0x10]
|
|
ldr r3, [r1, #0x548]
|
|
and r2, r2, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x548]
|
|
ldrh r3, [r0, #0x20]
|
|
ldr r2, [r1, #0x5b4]
|
|
add r2, r2, r3, asr #8
|
|
str r2, [r1, #0x5b4]
|
|
ldrh ip, [r0, #0x22]
|
|
ldr r3, [r1, #0x5b8]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x5b8]
|
|
ldr r2, [r1, #0x5bc]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x5bc]
|
|
ldrh ip, [r0, #0x24]
|
|
ldr r3, [r1, #0x5c0]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x5c0]
|
|
ldr r2, [r1, #0x5c4]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x5c4]
|
|
ldrh ip, [r0, #0x26]
|
|
ldr r3, [r1, #0x5c8]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x5c8]
|
|
ldr r2, [r1, #0x5cc]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x5cc]
|
|
ldrh ip, [r0, #0x28]
|
|
ldr r3, [r1, #0x5d0]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x5d0]
|
|
ldr r2, [r1, #0x5d4]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x5d4]
|
|
ldrh ip, [r0, #0x2a]
|
|
ldr r3, [r1, #0x5d8]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x5d8]
|
|
ldr r2, [r1, #0x5dc]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x5dc]
|
|
ldrh ip, [r0, #0x2c]
|
|
ldr r3, [r1, #0x5e0]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x5e0]
|
|
ldr r2, [r1, #0x5e4]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x5e4]
|
|
ldrh r3, [r0, #0x2e]
|
|
ldr r2, [r1, #0x5e8]
|
|
and r0, r3, #0xff
|
|
add r0, r2, r0
|
|
str r0, [r1, #0x5e8]
|
|
ldr r0, [r1, #0x5ec]
|
|
add r0, r0, r3, asr #8
|
|
str r0, [r1, #0x5ec]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA39C: .word 0x0380FFF4
|
|
_027EA3A0: .word 0x048081B0
|
|
arm_func_end sub_027EA1AC
|
|
|
|
arm_func_start sub_027EA3A4
|
|
sub_027EA3A4: ; 0x027EA3A4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r2, _027EA470 ; =0x0380FFF4
|
|
mov sb, r0
|
|
ldr r0, [r2]
|
|
mov r8, r1
|
|
cmp sb, #0x20
|
|
add r2, r0, #0x344
|
|
movhi r0, #0
|
|
bhi _027EA468
|
|
ldrh r1, [r2, #0x1e]
|
|
cmp r1, #0
|
|
moveq r0, #1
|
|
beq _027EA468
|
|
add r0, r0, #0x400
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, #0x13
|
|
bne _027EA3FC
|
|
cmp sb, r1
|
|
movlo r0, #0
|
|
blo _027EA468
|
|
mov sb, r1
|
|
b _027EA408
|
|
_027EA3FC:
|
|
cmp sb, r1
|
|
movne r0, #0
|
|
bne _027EA468
|
|
_027EA408:
|
|
add r5, r2, #0x20
|
|
add r6, r2, #0x40
|
|
mov r7, #0
|
|
b _027EA45C
|
|
_027EA418:
|
|
mov r0, r6
|
|
bl sub_027EAD50
|
|
mov r4, r0
|
|
mov r0, r8
|
|
add r6, r6, #1
|
|
bl sub_027EAD50
|
|
mov sl, r0
|
|
mov r0, r5
|
|
add r8, r8, #1
|
|
bl sub_027EAD50
|
|
orr r1, sl, r4
|
|
orr r0, r0, r4
|
|
cmp r1, r0
|
|
add r5, r5, #1
|
|
movne r0, #0
|
|
bne _027EA468
|
|
add r7, r7, #1
|
|
_027EA45C:
|
|
cmp r7, sb
|
|
blo _027EA418
|
|
mov r0, #1
|
|
_027EA468:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA470: .word 0x0380FFF4
|
|
arm_func_end sub_027EA3A4
|
|
|
|
arm_func_start sub_027EA474
|
|
sub_027EA474: ; 0x027EA474
|
|
ldrh r3, [r0, #4]
|
|
ldrh r2, [r1, #4]
|
|
cmp r3, r2
|
|
ldreqh r3, [r0, #2]
|
|
ldreqh r2, [r1, #2]
|
|
cmpeq r3, r2
|
|
ldreqh r2, [r0]
|
|
ldreqh r0, [r1]
|
|
cmpeq r2, r0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
bx lr
|
|
arm_func_end sub_027EA474
|
|
|
|
arm_func_start sub_027EA4A4
|
|
sub_027EA4A4: ; 0x027EA4A4
|
|
ldr r1, _027EA4C0 ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x2c]
|
|
and r0, r1, r2, lsl r0
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA4C0: .word 0x0380FFF4
|
|
arm_func_end sub_027EA4A4
|
|
|
|
arm_func_start sub_027EA4C4
|
|
sub_027EA4C4: ; 0x027EA4C4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
mov sb, r1
|
|
mov r1, #0
|
|
mov r4, r0
|
|
strh r1, [sb]
|
|
add r0, r4, #1
|
|
strh r1, [sb, #2]
|
|
bl sub_027EAD50
|
|
add r6, r4, #2
|
|
ldr r5, _027EA574 ; =0x027F73B4
|
|
mov r8, r0
|
|
mov r7, #0
|
|
mov r4, #1
|
|
b _027EA564
|
|
_027EA4FC:
|
|
add r0, r6, r7
|
|
bl sub_027EAD50
|
|
and r1, r0, #0x7f
|
|
sub r1, r1, #1
|
|
cmp r1, #0x78
|
|
bhs _027EA544
|
|
mov r1, r1, lsl #1
|
|
ldrh r2, [r5, r1]
|
|
cmp r2, #0xff
|
|
beq _027EA544
|
|
ldrh r1, [sb, #2]
|
|
tst r0, #0x80
|
|
orr r0, r1, r4, lsl r2
|
|
strh r0, [sb, #2]
|
|
ldrneh r0, [sb]
|
|
orrne r0, r0, r4, lsl r2
|
|
strneh r0, [sb]
|
|
b _027EA560
|
|
_027EA544:
|
|
ldrh r1, [sb, #2]
|
|
tst r0, #0x80
|
|
orr r0, r1, #0x8000
|
|
strh r0, [sb, #2]
|
|
ldrneh r0, [sb]
|
|
orrne r0, r0, #0x8000
|
|
strneh r0, [sb]
|
|
_027EA560:
|
|
add r7, r7, #1
|
|
_027EA564:
|
|
cmp r7, r8
|
|
blo _027EA4FC
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA574: .word 0x027F73B4
|
|
arm_func_end sub_027EA4C4
|
|
|
|
arm_func_start sub_027EA578
|
|
sub_027EA578: ; 0x027EA578
|
|
ldr r0, _027EA5C0 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x30]
|
|
cmp r1, #0
|
|
beq _027EA59C
|
|
cmp r1, #1
|
|
beq _027EA5B0
|
|
b _027EA5B8
|
|
_027EA59C:
|
|
ldrh r0, [r0, #0xa4]
|
|
tst r0, #1
|
|
beq _027EA5B8
|
|
mov r0, #0xa
|
|
bx lr
|
|
_027EA5B0:
|
|
mov r0, #0xa
|
|
bx lr
|
|
_027EA5B8:
|
|
mov r0, #0x14
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA5C0: .word 0x0380FFF4
|
|
arm_func_end sub_027EA578
|
|
|
|
arm_func_start sub_027EA5C4
|
|
sub_027EA5C4: ; 0x027EA5C4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _027EA5E8 ; =0x04808158
|
|
orr r0, r0, #0x6000
|
|
strh r0, [r1]
|
|
bl sub_037FB420
|
|
ldr r0, _027EA5EC ; =0x0480815C
|
|
ldrh r0, [r0]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA5E8: .word 0x04808158
|
|
_027EA5EC: .word 0x0480815C
|
|
arm_func_end sub_027EA5C4
|
|
|
|
arm_func_start sub_027EA5F0
|
|
sub_027EA5F0: ; 0x027EA5F0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EA61C ; =0x0480815A
|
|
orr r0, r0, #0x5000
|
|
strh r1, [r2]
|
|
strh r0, [r2, #-2]
|
|
bl sub_037FB420
|
|
cmp r0, #0
|
|
mvnne r0, #0
|
|
moveq r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA61C: .word 0x0480815A
|
|
arm_func_end sub_027EA5F0
|
|
|
|
arm_func_start sub_027EA620
|
|
sub_027EA620: ; 0x027EA620
|
|
ldr r2, _027EA638 ; =0x0480817E
|
|
ldr ip, _027EA63C ; =sub_037FB454
|
|
strh r0, [r2]
|
|
mov r1, r0, lsr #0x10
|
|
strh r1, [r2, #-2]
|
|
bx ip
|
|
.align 2, 0
|
|
_027EA638: .word 0x0480817E
|
|
_027EA63C: .word sub_037FB454
|
|
arm_func_end sub_027EA620
|
|
|
|
arm_func_start sub_027EA640
|
|
sub_027EA640: ; 0x027EA640
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #4
|
|
mov r8, #0
|
|
str r8, [sp]
|
|
mov r7, r8
|
|
mov r6, #0x64
|
|
add r4, sp, #0
|
|
mov r5, #1
|
|
_027EA660:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_027F4E10
|
|
cmp r7, #1
|
|
ldreq r0, [sp]
|
|
mov r1, r8
|
|
andeq r0, r0, #0x80
|
|
streq r0, [sp]
|
|
ldr r0, [sp]
|
|
and r0, r0, #0xff
|
|
bl sub_027EADE8
|
|
add r7, r7, #1
|
|
mov r8, r0
|
|
cmp r7, #0x69
|
|
add r6, r6, #1
|
|
blo _027EA660
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
arm_func_end sub_027EA640
|
|
|
|
arm_func_start sub_027EA6B0
|
|
sub_027EA6B0: ; 0x027EA6B0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _027EA71C ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
mov r2, #0x10
|
|
add r1, r1, #0x1f8
|
|
add r4, r1, #0x400
|
|
mov r1, r4
|
|
bl sub_037FDF74
|
|
mov r2, r4
|
|
mov r0, #0x40
|
|
mov r1, #1
|
|
bl sub_027F4E10
|
|
add r2, r4, #2
|
|
mov r0, #0x41
|
|
mov r1, #1
|
|
bl sub_027F4E10
|
|
add r2, r4, #4
|
|
mov r0, #0x42
|
|
mov r1, #1
|
|
bl sub_027F4E10
|
|
add r2, r4, #6
|
|
mov r0, #0x43
|
|
mov r1, #1
|
|
bl sub_027F4E10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA71C: .word 0x0380FFF4
|
|
arm_func_end sub_027EA6B0
|
|
|
|
arm_func_start sub_027EA720
|
|
sub_027EA720: ; 0x027EA720
|
|
ldr r2, _027EA754 ; =0x027F7350
|
|
mov r3, #0
|
|
_027EA728:
|
|
mov r0, r3, lsl #2
|
|
ldrh r0, [r2, r0]
|
|
add r1, r2, r3, lsl #2
|
|
add r0, r0, #0x4800000
|
|
add r3, r3, #1
|
|
ldrh r1, [r1, #2]
|
|
add r0, r0, #0x8000
|
|
strh r1, [r0]
|
|
cmp r3, #0x19
|
|
blo _027EA728
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA754: .word 0x027F7350
|
|
arm_func_end sub_027EA720
|
|
|
|
arm_func_start sub_027EA758
|
|
sub_027EA758: ; 0x027EA758
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r0, _027EA7BC ; =0x04808160
|
|
mov r1, #0x100
|
|
strh r1, [r0]
|
|
mov r6, #0
|
|
str r6, [sp]
|
|
mov r7, #0x64
|
|
add r4, sp, #0
|
|
mov r5, #1
|
|
_027EA77C:
|
|
mov r0, r7
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_027F4E10
|
|
ldr r1, [sp]
|
|
mov r0, r6
|
|
bl sub_027EA5F0
|
|
add r6, r6, #1
|
|
cmp r6, #0x69
|
|
add r7, r7, #1
|
|
blo _027EA77C
|
|
mov r0, #0x5a
|
|
mov r1, #2
|
|
bl sub_027EA5F0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA7BC: .word 0x04808160
|
|
arm_func_end sub_027EA758
|
|
|
|
arm_func_start sub_027EA7C0
|
|
sub_027EA7C0: ; 0x027EA7C0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
sub sp, sp, #8
|
|
ldr r0, _027EA93C ; =0x0380FFF4
|
|
ldr r5, _027EA940 ; =0x027F72E0
|
|
ldr r0, [r0]
|
|
mov r8, #0
|
|
add r0, r0, #0x1f8
|
|
str r8, [sp]
|
|
add r4, r0, #0x400
|
|
add r6, sp, #0
|
|
mov r7, #2
|
|
_027EA7EC:
|
|
mov r0, r8, lsl #1
|
|
mov r1, r7
|
|
mov r2, r6
|
|
add r0, r0, #0x44
|
|
bl sub_027F4E10
|
|
mov r0, r8, lsl #1
|
|
ldrh r0, [r5, r0]
|
|
add r8, r8, #1
|
|
add r0, r0, #0x4800000
|
|
ldr r1, [sp]
|
|
add r0, r0, #0x8000
|
|
strh r1, [r0]
|
|
cmp r8, #0x10
|
|
blo _027EA7EC
|
|
ldrh r1, [r4, #2]
|
|
ldr r0, _027EA944 ; =0x04808184
|
|
mov r2, r1, lsr #7
|
|
mov r1, r2, lsl #8
|
|
str r1, [sp, #4]
|
|
ldrh r1, [r4, #2]
|
|
mov r7, #0xce
|
|
and r1, r1, #0x7f
|
|
orr r1, r1, r2, lsl #8
|
|
str r1, [sp, #4]
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, #2]
|
|
ldrh r1, [r4]
|
|
and r0, r0, #0x7f
|
|
add r2, r0, #7
|
|
mov r0, r2, asr #2
|
|
add r0, r2, r0, lsr #29
|
|
ldrh r8, [r4, #4]
|
|
cmp r1, #3
|
|
mov r6, r0, asr #3
|
|
bne _027EA8DC
|
|
add r0, r8, #0xce
|
|
add r2, r4, #8
|
|
mov r1, #1
|
|
bl sub_027F4E10
|
|
mov sb, #0
|
|
add r4, sp, #4
|
|
mov r6, sb
|
|
mov r5, #1
|
|
b _027EA8D0
|
|
_027EA89C:
|
|
str r6, [sp, #4]
|
|
mov r0, r7
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_027F4E10
|
|
mov r0, sb, lsl #8
|
|
ldr r1, [sp, #4]
|
|
add r0, r0, #0x50000
|
|
orr r0, r1, r0
|
|
str r0, [sp, #4]
|
|
bl sub_027EA620
|
|
add sb, sb, #1
|
|
add r7, r7, #1
|
|
_027EA8D0:
|
|
cmp sb, r8
|
|
blo _027EA89C
|
|
b _027EA930
|
|
_027EA8DC:
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
add r5, sp, #4
|
|
b _027EA928
|
|
_027EA8EC:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl sub_027F4E10
|
|
ldr r0, [sp, #4]
|
|
bl sub_027EA620
|
|
ldrh r0, [r4]
|
|
sub r8, r8, #1
|
|
cmp r0, #2
|
|
ldreq r1, [sp, #4]
|
|
add r7, r7, r6
|
|
moveq r0, r1, lsr #0x12
|
|
cmpeq r0, #9
|
|
biceq r0, r1, #0x7c00
|
|
streq r0, [r4, #0xc]
|
|
_027EA928:
|
|
cmp r8, #0
|
|
bne _027EA8EC
|
|
_027EA930:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA93C: .word 0x0380FFF4
|
|
_027EA940: .word 0x027F72E0
|
|
_027EA944: .word 0x04808184
|
|
arm_func_end sub_027EA7C0
|
|
|
|
arm_func_start sub_027EA948
|
|
sub_027EA948: ; 0x027EA948
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027EA998 ; =0x0380FFF4
|
|
ldr r4, [r0]
|
|
bl sub_037FD390
|
|
cmp r0, #0
|
|
addeq r0, r4, #0x300
|
|
ldreqh r1, [r0, #0x3e]
|
|
orreq r1, r1, #0x40
|
|
streqh r1, [r0, #0x3e]
|
|
beq _027EA990
|
|
add r0, r4, #0x208
|
|
add r0, r0, #0x400
|
|
bl sub_037FD3A0
|
|
add r0, r4, #0x234
|
|
add r0, r0, #0x400
|
|
bl sub_037FD3A0
|
|
add r0, r4, #0x660
|
|
bl sub_037FD3A0
|
|
_027EA990:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EA998: .word 0x0380FFF4
|
|
arm_func_end sub_027EA948
|
|
|
|
arm_func_start sub_027EA99C
|
|
sub_027EA99C: ; 0x027EA99C
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
bx lr
|
|
arm_func_end sub_027EA99C
|
|
|
|
arm_func_start sub_027EA9A8
|
|
sub_027EA9A8: ; 0x027EA9A8
|
|
ldr ip, _027EA9B4 ; =sub_037FB32C
|
|
ldr r1, _027EA9B8 ; =0x027EA99C
|
|
bx ip
|
|
.align 2, 0
|
|
_027EA9B4: .word sub_037FB32C
|
|
_027EA9B8: .word 0x027EA99C
|
|
arm_func_end sub_027EA9A8
|
|
|
|
arm_func_start sub_027EA9BC
|
|
sub_027EA9BC: ; 0x027EA9BC
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #0xc
|
|
ldr r2, _027EAA44 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r2]
|
|
mov r4, r1
|
|
add r0, r0, #0x208
|
|
add r0, r0, #0x400
|
|
bl sub_037FD5C0
|
|
ldr r0, _027EAA48 ; =0x000082EA
|
|
mov r1, #0
|
|
umull r3, r2, r5, r0
|
|
mla r2, r5, r1, r2
|
|
mov r5, r1
|
|
mla r2, r5, r0, r2
|
|
mov r6, r3, lsr #6
|
|
orr r6, r6, r2, lsl #26
|
|
bl sub_037FD21C
|
|
adds r0, r6, r0
|
|
adc r2, r1, #0
|
|
mov r1, r0
|
|
str r4, [sp, #4]
|
|
mov r0, r5
|
|
str r0, [sp, #8]
|
|
ldr r0, _027EAA44 ; =0x0380FFF4
|
|
str r5, [sp]
|
|
ldr r0, [r0]
|
|
mov r3, r6
|
|
add r0, r0, #0x208
|
|
add r0, r0, #0x400
|
|
bl sub_037FD54C
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r3, r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EAA44: .word 0x0380FFF4
|
|
_027EAA48: .word 0x000082EA
|
|
arm_func_end sub_027EA9BC
|
|
|
|
arm_func_start sub_027EAA4C
|
|
sub_027EAA4C: ; 0x027EAA4C
|
|
ldr r0, _027EAA64 ; =0x0380FFF4
|
|
ldr ip, _027EAA68 ; =sub_037FD5C0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x208
|
|
add r0, r0, #0x400
|
|
bx ip
|
|
.align 2, 0
|
|
_027EAA64: .word 0x0380FFF4
|
|
_027EAA68: .word sub_037FD5C0
|
|
arm_func_end sub_027EAA4C
|
|
|
|
arm_func_start sub_027EAA6C
|
|
sub_027EAA6C: ; 0x027EAA6C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _027EAAE8 ; =0x0380FFF4
|
|
mov r0, #1
|
|
ldr r4, [r1]
|
|
mov r1, #0xa
|
|
ldr r2, [r4, #0x3ec]
|
|
add r2, r2, #1
|
|
str r2, [r4, #0x3ec]
|
|
bl sub_037F8598
|
|
mov r0, #2
|
|
mov r1, #0x12
|
|
bl sub_037F8598
|
|
mov r0, #1
|
|
mov r1, #0x11
|
|
bl sub_037F8598
|
|
add r0, r4, #0x100
|
|
ldrh r0, [r0, #0xfc]
|
|
cmp r0, #0
|
|
beq _027EAAC4
|
|
mov r0, #2
|
|
mov r1, #0x13
|
|
bl sub_037F8598
|
|
_027EAAC4:
|
|
add r0, r4, #0x300
|
|
ldrh r0, [r0, #0xf4]
|
|
cmp r0, #0
|
|
beq _027EAAE0
|
|
mov r0, #2
|
|
mov r1, #0x15
|
|
bl sub_037F8598
|
|
_027EAAE0:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EAAE8: .word 0x0380FFF4
|
|
arm_func_end sub_027EAA6C
|
|
|
|
arm_func_start sub_027EAAEC
|
|
sub_027EAAEC: ; 0x027EAAEC
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _027EAB54 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r2]
|
|
mov r4, r1
|
|
add r0, r0, #0x234
|
|
add r0, r0, #0x400
|
|
bl sub_037FD5C0
|
|
mov r3, #0
|
|
ldr r0, _027EAB58 ; =0x000082EA
|
|
mov r1, r3
|
|
umull r2, ip, r5, r0
|
|
mla ip, r5, r3, ip
|
|
mla ip, r1, r0, ip
|
|
mov r1, r2, lsr #6
|
|
str r3, [sp]
|
|
ldr r0, _027EAB54 ; =0x0380FFF4
|
|
mov r3, r4
|
|
ldr r0, [r0]
|
|
mov r2, ip, lsr #6
|
|
add r0, r0, #0x234
|
|
add r0, r0, #0x400
|
|
orr r1, r1, ip, lsl #26
|
|
bl sub_037FD4DC
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EAB54: .word 0x0380FFF4
|
|
_027EAB58: .word 0x000082EA
|
|
arm_func_end sub_027EAAEC
|
|
|
|
arm_func_start sub_027EAB5C
|
|
sub_027EAB5C: ; 0x027EAB5C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _027EABD8 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r2]
|
|
mov r4, r1
|
|
add r0, r0, #0x234
|
|
add r0, r0, #0x400
|
|
bl sub_037FD5C0
|
|
ldr r0, _027EABDC ; =0x000082EA
|
|
mov r3, #0
|
|
umull ip, r2, r5, r0
|
|
mla r2, r5, r3, r2
|
|
mov r1, r3
|
|
mla r2, r1, r0, r2
|
|
mov r0, ip, lsr #6
|
|
mov r1, r2, lsr #6
|
|
orr r0, r0, r2, lsl #26
|
|
mov r2, #0x3e8
|
|
bl sub_03806B80
|
|
mov r2, r1
|
|
mov r1, r0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _027EABD8 ; =0x0380FFF4
|
|
mov r3, r4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x234
|
|
add r0, r0, #0x400
|
|
bl sub_037FD4DC
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EABD8: .word 0x0380FFF4
|
|
_027EABDC: .word 0x000082EA
|
|
arm_func_end sub_027EAB5C
|
|
|
|
arm_func_start sub_027EABE0
|
|
sub_027EABE0: ; 0x027EABE0
|
|
ldr r0, _027EABF8 ; =0x0380FFF4
|
|
ldr ip, _027EABFC ; =sub_037FD5C0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x234
|
|
add r0, r0, #0x400
|
|
bx ip
|
|
.align 2, 0
|
|
_027EABF8: .word 0x0380FFF4
|
|
_027EABFC: .word sub_037FD5C0
|
|
arm_func_end sub_027EABE0
|
|
|
|
arm_func_start sub_027EAC00
|
|
sub_027EAC00: ; 0x027EAC00
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r3, _027EAC74 ; =0x04805F60
|
|
add r2, r2, #1
|
|
mov r5, r1
|
|
bic r2, r2, #1
|
|
add r1, r5, r2
|
|
cmp r1, r3
|
|
mov r6, r0
|
|
subhi r4, r3, r5
|
|
subhi r7, r2, r4
|
|
movls r4, r2
|
|
movls r7, #0
|
|
mov r0, r5
|
|
mov r1, r6
|
|
mov r2, r4
|
|
bl sub_037FDF9C
|
|
cmp r7, #0
|
|
beq _027EAC6C
|
|
ldr r0, _027EAC78 ; =0x0380FFF4
|
|
add r3, r5, r4
|
|
ldr r0, [r0]
|
|
mov r2, r7
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0xde]
|
|
add r1, r6, r4
|
|
sub r0, r3, r0
|
|
bl sub_037FDF9C
|
|
_027EAC6C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EAC74: .word 0x04805F60
|
|
_027EAC78: .word 0x0380FFF4
|
|
arm_func_end sub_027EAC00
|
|
|
|
arm_func_start sub_027EAC7C
|
|
sub_027EAC7C: ; 0x027EAC7C
|
|
ldr ip, _027EAC98 ; =sub_037FDF9C
|
|
mov r3, r0
|
|
add r2, r2, #1
|
|
mov r0, r1
|
|
mov r1, r3
|
|
bic r2, r2, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_027EAC98: .word sub_037FDF9C
|
|
arm_func_end sub_027EAC7C
|
|
|
|
arm_func_start sub_027EAC9C
|
|
sub_027EAC9C: ; 0x027EAC9C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r2
|
|
mov r0, r1
|
|
mov r4, r3
|
|
mov r1, r6
|
|
mov r2, #0x24
|
|
bl sub_037FDF9C
|
|
cmp r4, #0
|
|
beq _027EACD8
|
|
add r2, r4, #1
|
|
mov r0, r5
|
|
add r1, r6, #0x24
|
|
bic r2, r2, #1
|
|
bl sub_037FDF9C
|
|
_027EACD8:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_027EAC9C
|
|
|
|
arm_func_start sub_027EACE0
|
|
sub_027EACE0: ; 0x027EACE0
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r2
|
|
mov r0, r1
|
|
mov r4, r3
|
|
mov r1, r6
|
|
mov r2, #0x24
|
|
bl sub_037FDF9C
|
|
cmp r4, #0
|
|
beq _027EAD1C
|
|
add r2, r4, #1
|
|
mov r0, r5
|
|
add r1, r6, #0x28
|
|
bic r2, r2, #1
|
|
bl sub_037FDF9C
|
|
_027EAD1C:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_027EACE0
|
|
|
|
arm_func_start sub_027EAD24
|
|
sub_027EAD24: ; 0x027EAD24
|
|
tst r0, #1
|
|
ldrneh r2, [r0, #-1]
|
|
andne r2, r2, #0xff
|
|
orrne r1, r2, r1, lsl #8
|
|
strneh r1, [r0, #-1]
|
|
ldreqh r2, [r0]
|
|
andeq r1, r1, #0xff
|
|
andeq r2, r2, #0xff00
|
|
orreq r1, r2, r1
|
|
streqh r1, [r0]
|
|
bx lr
|
|
arm_func_end sub_027EAD24
|
|
|
|
arm_func_start sub_027EAD50
|
|
sub_027EAD50: ; 0x027EAD50
|
|
tst r0, #1
|
|
ldrneh r0, [r0, #-1]
|
|
movne r0, r0, asr #8
|
|
ldreqh r0, [r0]
|
|
and r0, r0, #0xff
|
|
and r0, r0, #0xff
|
|
bx lr
|
|
arm_func_end sub_027EAD50
|
|
|
|
arm_func_start sub_027EAD6C
|
|
sub_027EAD6C: ; 0x027EAD6C
|
|
ldr r3, _027EAD98 ; =0x0380FFF4
|
|
ldr r2, _027EAD9C ; =0x0000FFF8
|
|
ldr r3, [r3]
|
|
and r0, r0, r2
|
|
add r2, r0, #5
|
|
add r0, r3, #0x500
|
|
strh r2, [r0, #0xf0]
|
|
add r2, r3, #0x5f0
|
|
orr r0, r1, #1
|
|
strh r0, [r2, #2]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EAD98: .word 0x0380FFF4
|
|
_027EAD9C: .word 0x0000FFF8
|
|
arm_func_end sub_027EAD6C
|
|
|
|
arm_func_start sub_027EADA0
|
|
sub_027EADA0: ; 0x027EADA0
|
|
ldr r1, _027EADB4 ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x500
|
|
strh r0, [r1, #0xf4]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EADB4: .word 0x0380FFF4
|
|
arm_func_end sub_027EADA0
|
|
|
|
arm_func_start sub_027EADB8
|
|
sub_027EADB8: ; 0x027EADB8
|
|
ldr r0, _027EADE4 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r3, r0, #0x5f0
|
|
add r0, r0, #0x500
|
|
ldrh r2, [r3, #2]
|
|
ldrh r1, [r3, #4]
|
|
ldrh r0, [r0, #0xf0]
|
|
mla r0, r1, r0, r2
|
|
strh r0, [r3, #4]
|
|
ldrh r0, [r3, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EADE4: .word 0x0380FFF4
|
|
arm_func_end sub_027EADB8
|
|
|
|
arm_func_start sub_027EADE8
|
|
sub_027EADE8: ; 0x027EADE8
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _027EAE60 ; =0x027F72C0
|
|
mov r4, r1, lsl #0x1c
|
|
ldr r3, _027EAE64 ; =0x00000FFF
|
|
mov r4, r4, lsr #0x1b
|
|
mov ip, r0, lsl #0x1c
|
|
mov lr, ip, lsr #0x1b
|
|
and r1, r3, r1, asr #4
|
|
ldrh r4, [r2, r4]
|
|
mov r1, r1, lsl #0x10
|
|
mov r0, r0, asr #4
|
|
mov r0, r0, lsl #0x1c
|
|
mov ip, r0, lsr #0x1b
|
|
ldrh r0, [r2, lr]
|
|
eor r1, r4, r1, lsr #16
|
|
eor r0, r1, r0
|
|
mov r0, r0, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
mov r0, r1, lsl #0x1c
|
|
mov r0, r0, lsr #0x1b
|
|
and r1, r3, r1, asr #4
|
|
ldrh r3, [r2, r0]
|
|
mov r0, r1, lsl #0x10
|
|
ldrh r1, [r2, ip]
|
|
eor r0, r3, r0, lsr #16
|
|
eor r0, r0, r1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EAE60: .word 0x027F72C0
|
|
_027EAE64: .word 0x00000FFF
|
|
arm_func_end sub_027EADE8
|
|
|
|
arm_func_start sub_027EAE68
|
|
sub_027EAE68: ; 0x027EAE68
|
|
stmdb sp!, {r4, lr}
|
|
ldr r4, [r0, #8]
|
|
ldr r1, _027EAEDC ; =0x0000B6B8
|
|
ldrh r2, [r4, #-4]
|
|
sub lr, r4, #4
|
|
cmp r2, r1
|
|
ldreqh r2, [lr, #2]
|
|
ldreq r1, _027EAEE0 ; =0x00001D46
|
|
cmpeq r2, r1
|
|
moveq r0, #0
|
|
beq _027EAED4
|
|
ldr r3, _027EAEDC ; =0x0000B6B8
|
|
mov ip, #1
|
|
strh ip, [r4, #0xa]
|
|
ldr r2, _027EAEE0 ; =0x00001D46
|
|
strh r3, [lr]
|
|
strh r2, [lr, #2]
|
|
ldr r1, [r0, #8]
|
|
ldr r0, _027EAEE4 ; =0x0380FFF4
|
|
strh r3, [r1, #0xc]
|
|
strh r2, [r1, #0xe]
|
|
ldr r1, [r0]
|
|
mov r0, ip
|
|
add r1, r1, #0x300
|
|
ldrh r2, [r1, #0xfa]
|
|
add r2, r2, #1
|
|
strh r2, [r1, #0xfa]
|
|
_027EAED4:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EAEDC: .word 0x0000B6B8
|
|
_027EAEE0: .word 0x00001D46
|
|
_027EAEE4: .word 0x0380FFF4
|
|
arm_func_end sub_027EAE68
|
|
|
|
arm_func_start sub_027EAEE8
|
|
sub_027EAEE8: ; 0x027EAEE8
|
|
ldr r0, _027EAF20 ; =0x04808004
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
mov r2, #0x10
|
|
add r1, r0, #0x210
|
|
b _027EAF14
|
|
_027EAF00:
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
cmpne r0, #9
|
|
bxeq lr
|
|
sub r2, r2, #1
|
|
_027EAF14:
|
|
cmp r2, #0
|
|
bne _027EAF00
|
|
bx lr
|
|
.align 2, 0
|
|
_027EAF20: .word 0x04808004
|
|
arm_func_end sub_027EAEE8
|
|
|
|
arm_func_start sub_027EAF24
|
|
sub_027EAF24: ; 0x027EAF24
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _027EAF64
|
|
bl sub_027EAEE8
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4, #8]
|
|
sub r1, r1, #0x10
|
|
bl sub_027F0114
|
|
ldr r0, _027EAF6C ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0xfc]
|
|
add r1, r1, #1
|
|
strh r1, [r0, #0xfc]
|
|
_027EAF64:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EAF6C: .word 0x0380FFF4
|
|
arm_func_end sub_027EAF24
|
|
|
|
arm_func_start sub_027EAF70
|
|
sub_027EAF70: ; 0x027EAF70
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _027EB064 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x300
|
|
ldrh r1, [r0, #0x50]
|
|
add r0, r2, #0x2c
|
|
cmp r1, #1
|
|
add r4, r2, #0x344
|
|
add r5, r0, #0x400
|
|
beq _027EAFA8
|
|
cmp r1, #2
|
|
beq _027EAFDC
|
|
cmp r1, #3
|
|
b _027EB018
|
|
_027EAFA8:
|
|
add r0, r5, #0x78
|
|
bl sub_027EAE68
|
|
cmp r0, #0
|
|
beq _027EAFC0
|
|
bl sub_027EAEE8
|
|
bl sub_027F1204
|
|
_027EAFC0:
|
|
add r0, r5, #0x28
|
|
bl sub_027EAE68
|
|
cmp r0, #0
|
|
beq _027EB018
|
|
add r0, r5, #0x28
|
|
bl sub_027EAF24
|
|
b _027EB018
|
|
_027EAFDC:
|
|
add r0, r5, #0x64
|
|
bl sub_027EAE68
|
|
add r0, r5, #0x28
|
|
bl sub_027EAE68
|
|
cmp r0, #0
|
|
beq _027EB018
|
|
ldrh r0, [r5, #0x28]
|
|
cmp r0, #0
|
|
beq _027EB004
|
|
bl sub_027EAEE8
|
|
_027EB004:
|
|
ldrh r0, [r4, #0x6a]
|
|
bl sub_027F1F50
|
|
ldrh r0, [r4, #0xb8]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0xb8]
|
|
_027EB018:
|
|
add r0, r5, #0x14
|
|
bl sub_027EAE68
|
|
cmp r0, #0
|
|
beq _027EB030
|
|
add r0, r5, #0x14
|
|
bl sub_027EAF24
|
|
_027EB030:
|
|
mov r0, r5
|
|
bl sub_027EAE68
|
|
cmp r0, #0
|
|
beq _027EB048
|
|
mov r0, r5
|
|
bl sub_027EAF24
|
|
_027EB048:
|
|
ldr r1, _027EB068 ; =0x04808004
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
streqh r0, [r1]
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EB064: .word 0x0380FFF4
|
|
_027EB068: .word 0x04808004
|
|
arm_func_end sub_027EAF70
|
|
|
|
arm_func_start sub_027EB06C
|
|
sub_027EB06C: ; 0x027EB06C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x1000000
|
|
bl sub_037FB928
|
|
ldr r1, _027EB0AC ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
ldrh r2, [r1, #0xf4]
|
|
orr r2, r2, r4
|
|
strh r2, [r1, #0xf4]
|
|
bl sub_037FB8F0
|
|
mov r0, #2
|
|
mov r1, #0x15
|
|
bl sub_037F8598
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EB0AC: .word 0x0380FFF4
|
|
arm_func_end sub_027EB06C
|
|
|
|
arm_func_start sub_027EB0B0
|
|
sub_027EB0B0: ; 0x027EB0B0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _027EB128 ; =0x0380FFF4
|
|
ldr r1, [r0]
|
|
add r4, r1, #0x344
|
|
ldrh r0, [r4, #0xb0]
|
|
cmp r0, #0
|
|
beq _027EB120
|
|
add r0, r1, #0x188
|
|
mov r1, #0x12
|
|
bl sub_037F886C
|
|
movs r5, r0
|
|
beq _027EB120
|
|
ldr r1, _027EB12C ; =0x00000186
|
|
mov r0, #1
|
|
strh r1, [r5, #0xc]
|
|
strh r0, [r5, #0xe]
|
|
mov r0, #0x1000000
|
|
bl sub_037FB928
|
|
ldrh r2, [r4, #0xb0]
|
|
mov r1, #0
|
|
strh r2, [r5, #0x10]
|
|
strh r1, [r4, #0xb0]
|
|
bl sub_037FB8F0
|
|
ldr r0, _027EB128 ; =0x0380FFF4
|
|
mov r1, r5
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_037F8D58
|
|
_027EB120:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EB128: .word 0x0380FFF4
|
|
_027EB12C: .word 0x00000186
|
|
arm_func_end sub_027EB0B0
|
|
|
|
arm_func_start sub_027EB130
|
|
sub_027EB130: ; 0x027EB130
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _027EB1C8 ; =0x0380FFF4
|
|
ldr r0, [r2]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x3e]
|
|
orr r1, r1, #0x8000
|
|
strh r1, [r0, #0x3e]
|
|
ldr r0, [r2]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0
|
|
beq _027EB19C
|
|
bl sub_037F9198
|
|
ldr r2, _027EB1C8 ; =0x0380FFF4
|
|
ldr r0, [r2]
|
|
add r0, r0, #0x400
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _027EB198
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
ldr r0, [r2]
|
|
mov r1, #6
|
|
ldr r0, [r0, #0x420]
|
|
strh r1, [r0, #4]
|
|
bl sub_027EDB14
|
|
_027EB198:
|
|
bl sub_027E9CF4
|
|
_027EB19C:
|
|
ldr r4, _027EB1CC ; =0x0000FFFF
|
|
mov r5, #3
|
|
_027EB1A4:
|
|
mov r0, r5
|
|
bl sub_037F8650
|
|
cmp r0, r4
|
|
bne _027EB1A4
|
|
mov r0, #3
|
|
mov r1, #0x17
|
|
bl sub_037F8598
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EB1C8: .word 0x0380FFF4
|
|
_027EB1CC: .word 0x0000FFFF
|
|
arm_func_end sub_027EB130
|
|
|
|
arm_func_start sub_027EB1D0
|
|
sub_027EB1D0: ; 0x027EB1D0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027EB21C ; =0x0380FFF4
|
|
ldr r4, [r0]
|
|
bl sub_027EB8E0
|
|
ldr r1, _027EB21C ; =0x0380FFF4
|
|
add r0, r4, #0x188
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x318]
|
|
sub r1, r1, #0xc
|
|
bl sub_037F8908
|
|
ldr r1, _027EB21C ; =0x0380FFF4
|
|
add r0, r4, #0x188
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x3e0]
|
|
sub r1, r1, #0xc
|
|
bl sub_037F8908
|
|
bl sub_037FC15C
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EB21C: .word 0x0380FFF4
|
|
arm_func_end sub_027EB1D0
|
|
|
|
arm_func_start sub_027EB220
|
|
sub_027EB220: ; 0x027EB220
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov ip, #0
|
|
ldr r0, _027EB3B4 ; =0x027F7554
|
|
ldr r6, _027EB3B8 ; =0x027F74E4
|
|
mov r3, ip
|
|
mov r1, ip
|
|
b _027EB294
|
|
_027EB23C:
|
|
mov r4, r3, lsl #1
|
|
ldrh r5, [r6, r4]
|
|
mov r2, r1
|
|
b _027EB288
|
|
_027EB24C:
|
|
mov lr, r2, lsl #2
|
|
add r4, r0, r2, lsl #2
|
|
ldrh lr, [r0, lr]
|
|
ldrh r4, [r4, #2]
|
|
add lr, lr, #0x4800000
|
|
and r4, r5, r4
|
|
add lr, lr, #0x8000
|
|
strh r4, [lr]
|
|
ldrh lr, [lr]
|
|
cmp lr, r4
|
|
beq _027EB284
|
|
cmp ip, #0x20
|
|
add ip, ip, #1
|
|
bhi _027EB38C
|
|
_027EB284:
|
|
add r2, r2, #1
|
|
_027EB288:
|
|
cmp r2, #0x1b
|
|
blo _027EB24C
|
|
add r3, r3, #1
|
|
_027EB294:
|
|
cmp r3, #3
|
|
blo _027EB23C
|
|
ldr r4, _027EB3BC ; =0x00001234
|
|
ldr r3, _027EB3B4 ; =0x027F7554
|
|
mov r5, #0
|
|
_027EB2A8:
|
|
mov r0, r5, lsl #2
|
|
add r1, r3, r5, lsl #2
|
|
ldrh r0, [r3, r0]
|
|
ldrh r2, [r1, #2]
|
|
add r1, r4, #0x234
|
|
add r0, r0, #0x4800000
|
|
add r1, r1, #0x1000
|
|
add r5, r5, #1
|
|
and r2, r4, r2
|
|
add r0, r0, #0x8000
|
|
mov r1, r1, lsl #0x10
|
|
strh r2, [r0]
|
|
cmp r5, #0x1b
|
|
mov r4, r1, lsr #0x10
|
|
blo _027EB2A8
|
|
ldr r5, _027EB3BC ; =0x00001234
|
|
ldr r3, _027EB3B4 ; =0x027F7554
|
|
mov r4, #0
|
|
b _027EB33C
|
|
_027EB2F4:
|
|
mov r0, r4, lsl #2
|
|
ldrh r0, [r3, r0]
|
|
add r1, r3, r4, lsl #2
|
|
add r0, r0, #0x4800000
|
|
add r0, r0, #0x8000
|
|
ldrh r1, [r1, #2]
|
|
ldrh r2, [r0]
|
|
and r0, r5, r1
|
|
cmp r2, r0
|
|
beq _027EB328
|
|
cmp ip, #0x20
|
|
add ip, ip, #1
|
|
bhi _027EB38C
|
|
_027EB328:
|
|
add r0, r5, #0x234
|
|
add r0, r0, #0x1000
|
|
mov r0, r0, lsl #0x10
|
|
mov r5, r0, lsr #0x10
|
|
add r4, r4, #1
|
|
_027EB33C:
|
|
cmp r4, #0x1b
|
|
blo _027EB2F4
|
|
mov r3, #0
|
|
ldr r2, _027EB3B4 ; =0x027F7554
|
|
mov r1, r3
|
|
b _027EB384
|
|
_027EB354:
|
|
mov r0, r3, lsl #2
|
|
ldrh r0, [r2, r0]
|
|
add r0, r0, #0x4800000
|
|
add r0, r0, #0x8000
|
|
strh r1, [r0]
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _027EB380
|
|
cmp ip, #0x20
|
|
add ip, ip, #1
|
|
bhi _027EB38C
|
|
_027EB380:
|
|
add r3, r3, #1
|
|
_027EB384:
|
|
cmp r3, #0x1b
|
|
blo _027EB354
|
|
_027EB38C:
|
|
cmp ip, #0
|
|
beq _027EB3AC
|
|
ldr r0, _027EB3C0 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x3e]
|
|
orr r1, r1, #1
|
|
strh r1, [r0, #0x3e]
|
|
_027EB3AC:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EB3B4: .word 0x027F7554
|
|
_027EB3B8: .word 0x027F74E4
|
|
_027EB3BC: .word 0x00001234
|
|
_027EB3C0: .word 0x0380FFF4
|
|
arm_func_end sub_027EB220
|
|
|
|
arm_func_start sub_027EB3C4
|
|
sub_027EB3C4: ; 0x027EB3C4
|
|
stmdb sp!, {r3, lr}
|
|
ldr lr, _027EB53C ; =0x04804000
|
|
mov r0, #0
|
|
ldr r3, _027EB540 ; =0x0000FFFF
|
|
mov r2, r0
|
|
_027EB3D8:
|
|
sub r1, r3, #1
|
|
mov ip, r3
|
|
mov r1, r1, lsl #0x10
|
|
add r2, r2, #2
|
|
cmp r2, #0x2000
|
|
mov r3, r1, lsr #0x10
|
|
strh ip, [lr], #2
|
|
blo _027EB3D8
|
|
ldr r2, _027EB53C ; =0x04804000
|
|
ldr r3, _027EB540 ; =0x0000FFFF
|
|
mov ip, #0
|
|
b _027EB434
|
|
_027EB408:
|
|
ldrh r1, [r2]
|
|
cmp r1, r3
|
|
beq _027EB420
|
|
cmp r0, #0x20
|
|
add r0, r0, #1
|
|
bhi _027EB514
|
|
_027EB420:
|
|
sub r1, r3, #1
|
|
mov r1, r1, lsl #0x10
|
|
add ip, ip, #2
|
|
add r2, r2, #2
|
|
mov r3, r1, lsr #0x10
|
|
_027EB434:
|
|
cmp ip, #0x2000
|
|
blo _027EB408
|
|
ldr r2, _027EB53C ; =0x04804000
|
|
ldr r3, _027EB544 ; =0x00005A5A
|
|
mov ip, #0
|
|
_027EB448:
|
|
mvn r1, r3
|
|
add ip, ip, #2
|
|
mov r1, r1, lsl #0x10
|
|
strh r3, [r2], #2
|
|
cmp ip, #0x2000
|
|
mov r3, r1, lsr #0x10
|
|
blo _027EB448
|
|
ldr r2, _027EB53C ; =0x04804000
|
|
ldr r3, _027EB544 ; =0x00005A5A
|
|
mov ip, #0
|
|
b _027EB4A0
|
|
_027EB474:
|
|
ldrh r1, [r2]
|
|
cmp r1, r3
|
|
beq _027EB48C
|
|
cmp r0, #0x20
|
|
add r0, r0, #1
|
|
bhi _027EB514
|
|
_027EB48C:
|
|
mvn r1, r3
|
|
mov r1, r1, lsl #0x10
|
|
add ip, ip, #2
|
|
add r2, r2, #2
|
|
mov r3, r1, lsr #0x10
|
|
_027EB4A0:
|
|
cmp ip, #0x2000
|
|
blo _027EB474
|
|
ldr r2, _027EB53C ; =0x04804000
|
|
ldr r3, _027EB548 ; =0x0000A5A5
|
|
mov ip, #0
|
|
_027EB4B4:
|
|
mvn r1, r3
|
|
add ip, ip, #2
|
|
mov r1, r1, lsl #0x10
|
|
strh r3, [r2], #2
|
|
cmp ip, #0x2000
|
|
mov r3, r1, lsr #0x10
|
|
blo _027EB4B4
|
|
ldr r2, _027EB53C ; =0x04804000
|
|
ldr r3, _027EB548 ; =0x0000A5A5
|
|
mov ip, #0
|
|
b _027EB50C
|
|
_027EB4E0:
|
|
ldrh r1, [r2]
|
|
cmp r1, r3
|
|
beq _027EB4F8
|
|
cmp r0, #0x20
|
|
add r0, r0, #1
|
|
bhi _027EB514
|
|
_027EB4F8:
|
|
mvn r1, r3
|
|
mov r1, r1, lsl #0x10
|
|
add ip, ip, #2
|
|
add r2, r2, #2
|
|
mov r3, r1, lsr #0x10
|
|
_027EB50C:
|
|
cmp ip, #0x2000
|
|
blo _027EB4E0
|
|
_027EB514:
|
|
cmp r0, #0
|
|
beq _027EB534
|
|
ldr r0, _027EB54C ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x3e]
|
|
orr r1, r1, #2
|
|
strh r1, [r0, #0x3e]
|
|
_027EB534:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EB53C: .word 0x04804000
|
|
_027EB540: .word 0x0000FFFF
|
|
_027EB544: .word 0x00005A5A
|
|
_027EB548: .word 0x0000A5A5
|
|
_027EB54C: .word 0x0380FFF4
|
|
arm_func_end sub_027EB3C4
|
|
|
|
arm_func_start sub_027EB550
|
|
sub_027EB550: ; 0x027EB550
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r0, _027EB824 ; =0x0380FFF4
|
|
mov r7, #0
|
|
ldr r0, [r0]
|
|
mov r6, #0
|
|
add r0, r0, #0x500
|
|
ldrh r0, [r0, #0xf8]
|
|
mov r5, #0xff
|
|
cmp r0, #5
|
|
ldreq sl, _027EB828 ; =0x027F74EA
|
|
mvn r4, #0
|
|
ldrne sl, _027EB82C ; =0x027F751C
|
|
b _027EB5A0
|
|
_027EB584:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl sub_027EA5F0
|
|
cmp r0, r4
|
|
moveq r7, #1
|
|
beq _027EB7FC
|
|
add r6, r6, #1
|
|
_027EB5A0:
|
|
cmp r6, #0x69
|
|
blo _027EB584
|
|
mov r5, #0
|
|
mov r4, r5
|
|
b _027EB5F0
|
|
_027EB5B4:
|
|
mov r0, r4, lsl #1
|
|
ldrh r0, [sl, r0]
|
|
cmp r5, r0
|
|
addeq r4, r4, #1
|
|
beq _027EB5EC
|
|
mov r0, r5
|
|
bl sub_027EA5C4
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #0xff
|
|
beq _027EB5EC
|
|
cmp r7, #0x20
|
|
add r7, r7, #1
|
|
bhi _027EB7FC
|
|
_027EB5EC:
|
|
add r5, r5, #1
|
|
_027EB5F0:
|
|
cmp r5, #0x69
|
|
blo _027EB5B4
|
|
mov r5, #0
|
|
mov r4, r5
|
|
_027EB600:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_027EA5F0
|
|
add r5, r5, #1
|
|
cmp r5, #0x69
|
|
blo _027EB600
|
|
mov r4, #0
|
|
mov r5, r4
|
|
b _027EB65C
|
|
_027EB624:
|
|
mov r0, r5, lsl #1
|
|
ldrh r0, [sl, r0]
|
|
cmp r4, r0
|
|
addeq r5, r5, #1
|
|
beq _027EB658
|
|
mov r0, r4
|
|
bl sub_027EA5C4
|
|
mov r0, r0, lsl #0x10
|
|
movs r0, r0, lsr #0x10
|
|
beq _027EB658
|
|
cmp r7, #0x20
|
|
add r7, r7, #1
|
|
bhi _027EB7FC
|
|
_027EB658:
|
|
add r4, r4, #1
|
|
_027EB65C:
|
|
cmp r4, #0x69
|
|
blo _027EB624
|
|
mov r4, #0x55
|
|
mov r5, #0
|
|
_027EB66C:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_027EA5F0
|
|
mvn r0, r4
|
|
add r5, r5, #1
|
|
mov r0, r0, lsl #0x10
|
|
cmp r5, #0x69
|
|
mov r4, r0, lsr #0x10
|
|
blo _027EB66C
|
|
mov r4, #0
|
|
mov r6, r4
|
|
mov r5, #0x55
|
|
b _027EB6E4
|
|
_027EB6A0:
|
|
mov r0, r6, lsl #1
|
|
ldrh r0, [sl, r0]
|
|
cmp r4, r0
|
|
addeq r6, r6, #1
|
|
beq _027EB6D8
|
|
mov r0, r4
|
|
bl sub_027EA5C4
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, r5
|
|
beq _027EB6D8
|
|
cmp r7, #0x20
|
|
add r7, r7, #1
|
|
bhi _027EB7FC
|
|
_027EB6D8:
|
|
mvn r0, r5
|
|
and r5, r0, #0xff
|
|
add r4, r4, #1
|
|
_027EB6E4:
|
|
cmp r4, #0x69
|
|
blo _027EB6A0
|
|
mov r5, #0xff
|
|
mov r4, #0
|
|
_027EB6F4:
|
|
mov r0, r4
|
|
mov r1, r5
|
|
bl sub_027EA5F0
|
|
sub r0, r5, #1
|
|
add r4, r4, #1
|
|
mov r0, r0, lsl #0x10
|
|
cmp r4, #0x69
|
|
mov r5, r0, lsr #0x10
|
|
blo _027EB6F4
|
|
mov r4, #0
|
|
mov r6, r4
|
|
mov r5, #0xff
|
|
b _027EB770
|
|
_027EB728:
|
|
mov r0, r6, lsl #1
|
|
ldrh r0, [sl, r0]
|
|
cmp r4, r0
|
|
addeq r6, r6, #1
|
|
beq _027EB760
|
|
mov r0, r4
|
|
bl sub_027EA5C4
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, r5
|
|
beq _027EB760
|
|
cmp r7, #0x20
|
|
add r7, r7, #1
|
|
bhi _027EB7FC
|
|
_027EB760:
|
|
sub r0, r5, #1
|
|
mov r0, r0, lsl #0x10
|
|
add r4, r4, #1
|
|
mov r5, r0, lsr #0x10
|
|
_027EB770:
|
|
cmp r4, #0x69
|
|
blo _027EB728
|
|
mov r8, #0
|
|
mov sb, r8
|
|
mov r4, #1
|
|
mov fp, r8
|
|
b _027EB7F4
|
|
_027EB78C:
|
|
mov r0, sb, lsl #1
|
|
ldrh r0, [sl, r0]
|
|
cmp r8, r0
|
|
addeq sb, sb, #1
|
|
beq _027EB7F0
|
|
mov r6, r4
|
|
mov r5, fp
|
|
b _027EB7E8
|
|
_027EB7AC:
|
|
mov r0, r8
|
|
mov r1, r6
|
|
bl sub_027EA5F0
|
|
mov r0, r8
|
|
bl sub_027EA5C4
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, r6
|
|
beq _027EB7DC
|
|
cmp r7, #0x20
|
|
add r7, r7, #1
|
|
bhi _027EB7FC
|
|
_027EB7DC:
|
|
mov r0, r6, lsl #1
|
|
and r6, r0, #0xff
|
|
add r5, r5, #1
|
|
_027EB7E8:
|
|
cmp r5, #9
|
|
blo _027EB7AC
|
|
_027EB7F0:
|
|
add r8, r8, #1
|
|
_027EB7F4:
|
|
cmp r8, #0x69
|
|
blo _027EB78C
|
|
_027EB7FC:
|
|
cmp r7, #0
|
|
beq _027EB81C
|
|
ldr r0, _027EB824 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x3e]
|
|
orr r1, r1, #8
|
|
strh r1, [r0, #0x3e]
|
|
_027EB81C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EB824: .word 0x0380FFF4
|
|
_027EB828: .word 0x027F74EA
|
|
_027EB82C: .word 0x027F751C
|
|
arm_func_end sub_027EB550
|
|
|
|
arm_func_start sub_027EB830
|
|
sub_027EB830: ; 0x027EB830
|
|
ldr r0, _027EB840 ; =0x04808010
|
|
mov r1, #0x800
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EB840: .word 0x04808010
|
|
arm_func_end sub_027EB830
|
|
|
|
arm_func_start sub_027EB844
|
|
sub_027EB844: ; 0x027EB844
|
|
stmdb sp!, {r4, lr}
|
|
ldrh r1, [r0]
|
|
mov r4, #0
|
|
cmp r1, #2
|
|
bne _027EB884
|
|
ldr r2, _027EB8B4 ; =0x04808094
|
|
ldr r3, [r0, #8]
|
|
ldr r1, _027EB8B8 ; =0x00003FFF
|
|
ldrh r2, [r2]
|
|
and r1, r3, r1
|
|
mov r1, r1, lsr #1
|
|
orr r1, r1, #0x8000
|
|
cmp r1, r2
|
|
movne r1, #1
|
|
strneh r1, [r0]
|
|
orrne r4, r4, #1
|
|
_027EB884:
|
|
ldrh r1, [r0]
|
|
cmp r1, #1
|
|
bne _027EB8A8
|
|
ldr r1, [r0, #8]
|
|
ldrh r1, [r1]
|
|
tst r1, #1
|
|
beq _027EB8A8
|
|
bl sub_027F0AB8
|
|
orr r4, r4, #2
|
|
_027EB8A8:
|
|
mov r0, r4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EB8B4: .word 0x04808094
|
|
_027EB8B8: .word 0x00003FFF
|
|
arm_func_end sub_027EB844
|
|
|
|
arm_func_start sub_027EB8BC
|
|
sub_027EB8BC: ; 0x027EB8BC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _027EB8DC ; =0x037F92DC
|
|
mov r0, #0x1000000
|
|
bl sub_037FB7BC
|
|
mov r0, #0x1000000
|
|
bl sub_037FB8F0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EB8DC: .word 0x037F92DC
|
|
arm_func_end sub_027EB8BC
|
|
|
|
arm_func_start sub_027EB8E0
|
|
sub_027EB8E0: ; 0x027EB8E0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x1000000
|
|
bl sub_037FB928
|
|
mov r0, #0x1000000
|
|
mov r1, #0
|
|
bl sub_037FB7BC
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_027EB8E0
|
|
|
|
arm_func_start sub_027EB900
|
|
sub_027EB900: ; 0x027EB900
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov r8, r0
|
|
ldrh r0, [r8]
|
|
tst r0, #1
|
|
movne r0, #0
|
|
bne _027EB99C
|
|
ldr r4, _027EB9A4 ; =0x0380FFF4
|
|
ldr r0, [r4]
|
|
add r1, r0, #0x500
|
|
ldrh r1, [r1, #0x2c]
|
|
cmp r1, #1
|
|
bls _027EB998
|
|
ldr r1, [r0, #0x31c]
|
|
mov r7, #0
|
|
add r5, r1, #0x1c
|
|
mov r6, #1
|
|
b _027EB988
|
|
_027EB944:
|
|
ldrh r1, [r5]
|
|
cmp r1, #0
|
|
beq _027EB980
|
|
mov r1, r8
|
|
add r0, r5, #4
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
movne r0, r6
|
|
bne _027EB99C
|
|
ldr r0, [r4]
|
|
add r7, r7, #1
|
|
add r1, r0, #0x500
|
|
ldrh r1, [r1, #0x2c]
|
|
cmp r7, r1
|
|
bhs _027EB998
|
|
_027EB980:
|
|
add r6, r6, #1
|
|
add r5, r5, #0x1c
|
|
_027EB988:
|
|
add r1, r0, #0x300
|
|
ldrh r1, [r1, #0x22]
|
|
cmp r6, r1
|
|
blo _027EB944
|
|
_027EB998:
|
|
mov r0, #0xff
|
|
_027EB99C:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EB9A4: .word 0x0380FFF4
|
|
arm_func_end sub_027EB900
|
|
|
|
arm_func_start sub_027EB9A8
|
|
sub_027EB9A8: ; 0x027EB9A8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r5, _027EBAE4 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r5]
|
|
ldrh r1, [r4]
|
|
add r6, r0, #0x31c
|
|
tst r1, #1
|
|
movne r0, #0
|
|
bne _027EBADC
|
|
add r1, r0, #0x500
|
|
ldrh r1, [r1, #0x2c]
|
|
mov r8, #1
|
|
cmp r1, #1
|
|
bls _027EBA58
|
|
ldr r1, [r6]
|
|
mov sl, #0
|
|
mov sb, sl
|
|
add r7, r1, #0x1c
|
|
b _027EBA44
|
|
_027EB9F4:
|
|
ldrh r1, [r7]
|
|
cmp r1, #0
|
|
beq _027EBA34
|
|
mov r1, r4
|
|
add r0, r7, #4
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
movne r0, r8
|
|
bne _027EBADC
|
|
ldr r0, [r5]
|
|
add sb, sb, #1
|
|
add r1, r0, #0x500
|
|
ldrh r1, [r1, #0x2c]
|
|
cmp sb, r1
|
|
bhs _027EBA50
|
|
b _027EBA3C
|
|
_027EBA34:
|
|
cmp sl, #0
|
|
moveq sl, r8
|
|
_027EBA3C:
|
|
add r8, r8, #1
|
|
add r7, r7, #0x1c
|
|
_027EBA44:
|
|
ldrh r1, [r6, #6]
|
|
cmp r8, r1
|
|
blo _027EB9F4
|
|
_027EBA50:
|
|
cmp sl, #0
|
|
movne r8, sl
|
|
_027EBA58:
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x22]
|
|
cmp r8, r0
|
|
blo _027EBACC
|
|
ldr r7, [r6]
|
|
ldrh r5, [r6, #6]
|
|
mov r3, #0x10000
|
|
mov r6, #1
|
|
mov r8, #0
|
|
mov r0, #0x1c
|
|
b _027EBAB8
|
|
_027EBA84:
|
|
mul r2, r6, r0
|
|
ldrh r1, [r7, r2]
|
|
add r2, r7, r2
|
|
cmp r1, #0x30
|
|
bhs _027EBAB4
|
|
ldrh r1, [r2, #0x16]
|
|
cmp r1, #0
|
|
bne _027EBAB4
|
|
ldrh r1, [r2, #0x18]
|
|
cmp r3, r1
|
|
movhi r3, r1
|
|
movhi r8, r6
|
|
_027EBAB4:
|
|
add r6, r6, #1
|
|
_027EBAB8:
|
|
cmp r6, r5
|
|
blo _027EBA84
|
|
cmp r8, #0
|
|
moveq r0, #0xff
|
|
beq _027EBADC
|
|
_027EBACC:
|
|
mov r0, r8
|
|
mov r1, r4
|
|
bl sub_027EC598
|
|
mov r0, r8
|
|
_027EBADC:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBAE4: .word 0x0380FFF4
|
|
arm_func_end sub_027EB9A8
|
|
|
|
arm_func_start sub_027EBAE8
|
|
sub_027EBAE8: ; 0x027EBAE8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r2, _027EBB40 ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r2, [r2]
|
|
mov r0, #0x1000000
|
|
add r4, r2, #0x1ac
|
|
mov r6, r1
|
|
bl sub_037FB928
|
|
ldrh r1, [r4, #8]
|
|
mov r5, r0
|
|
cmp r1, #0
|
|
bne _027EBB20
|
|
mov r0, #0
|
|
bl sub_027EC10C
|
|
_027EBB20:
|
|
mov r0, r7
|
|
mov r1, r4
|
|
mov r2, r6
|
|
bl sub_037F8988
|
|
mov r0, r5
|
|
bl sub_037FB8F0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBB40: .word 0x0380FFF4
|
|
arm_func_end sub_027EBAE8
|
|
|
|
arm_func_start sub_027EBB44
|
|
sub_027EBB44: ; 0x027EBB44
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _027EBBD0 ; =0x0380FFF4
|
|
ldrh r5, [r0, #2]
|
|
ldr r0, [r1]
|
|
mov r1, #0x1c
|
|
ldr r2, [r0, #0x31c]
|
|
mov r0, #0x1000000
|
|
mla r6, r5, r1, r2
|
|
bl sub_037FB928
|
|
ldr r1, _027EBBD0 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #1
|
|
ldreqh r0, [r6, #0x16]
|
|
cmpeq r0, #0
|
|
bne _027EBB94
|
|
mov r0, r5
|
|
bl sub_027EC10C
|
|
_027EBB94:
|
|
ldrh r1, [r6, #0x16]
|
|
mov r0, r4
|
|
add r1, r1, #1
|
|
strh r1, [r6, #0x16]
|
|
bl sub_037FB8F0
|
|
ldr r0, _027EBBD0 ; =0x0380FFF4
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x500
|
|
ldrh r0, [r0, #0x34]
|
|
tst r0, r1, lsl r5
|
|
ldreqh r0, [r6, #0x1a]
|
|
streqh r0, [r6, #0x18]
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBBD0: .word 0x0380FFF4
|
|
arm_func_end sub_027EBB44
|
|
|
|
arm_func_start sub_027EBBD4
|
|
sub_027EBBD4: ; 0x027EBBD4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _027EBC40 ; =0x0380FFF4
|
|
ldrh r5, [r0, #2]
|
|
ldr r0, [r1]
|
|
mov r1, #0x1c
|
|
ldr r2, [r0, #0x31c]
|
|
mov r0, #0x1000000
|
|
mla r6, r5, r1, r2
|
|
bl sub_037FB928
|
|
ldr r1, _027EBC40 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #1
|
|
ldreqh r0, [r6, #0x16]
|
|
cmpeq r0, #1
|
|
bne _027EBC24
|
|
mov r0, r5
|
|
bl sub_027EC1C8
|
|
_027EBC24:
|
|
ldrh r1, [r6, #0x16]
|
|
mov r0, r4
|
|
sub r1, r1, #1
|
|
strh r1, [r6, #0x16]
|
|
bl sub_037FB8F0
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBC40: .word 0x0380FFF4
|
|
arm_func_end sub_027EBBD4
|
|
|
|
arm_func_start sub_027EBC44
|
|
sub_027EBC44: ; 0x027EBC44
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r0, #0x1000000
|
|
mov r5, r1
|
|
bl sub_037FB928
|
|
ldr r3, _027EBD28 ; =0x0380FFF4
|
|
mov r4, r0
|
|
cmp r5, #0x40
|
|
bhs _027EBCC4
|
|
ldr r0, [r3]
|
|
mov r2, #1
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0x30]
|
|
orr r1, r1, r2, lsl r6
|
|
strh r1, [r0, #0x30]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0x32]
|
|
orr r1, r1, r2, lsl r6
|
|
strh r1, [r0, #0x32]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #1
|
|
bne _027EBD00
|
|
mov r0, r6
|
|
bl sub_027EC0CC
|
|
cmp r0, #0
|
|
beq _027EBD00
|
|
mov r0, r6
|
|
bl sub_027EBF60
|
|
b _027EBD00
|
|
_027EBCC4:
|
|
ldr r2, [r3]
|
|
mov r0, #1
|
|
mvn r1, r0, lsl r6
|
|
add r0, r2, #0x500
|
|
ldrh r2, [r0, #0x32]
|
|
and r1, r2, r1
|
|
strh r1, [r0, #0x32]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x500
|
|
ldrh r0, [r0, #0x2e]
|
|
mov r0, r0, asr r6
|
|
tst r0, #1
|
|
beq _027EBD00
|
|
mov r0, r6
|
|
bl sub_027EBDA8
|
|
_027EBD00:
|
|
ldr r1, _027EBD28 ; =0x0380FFF4
|
|
mov r0, #0x1c
|
|
ldr r2, [r1]
|
|
mul r1, r6, r0
|
|
ldr r2, [r2, #0x31c]
|
|
mov r0, r4
|
|
strh r5, [r2, r1]
|
|
bl sub_037FB8F0
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBD28: .word 0x0380FFF4
|
|
arm_func_end sub_027EBC44
|
|
|
|
arm_func_start sub_027EBD2C
|
|
sub_027EBD2C: ; 0x027EBD2C
|
|
ldr r3, _027EBD48 ; =0x0380FFF4
|
|
mov r2, #0x1c
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #0x31c]
|
|
mla r2, r0, r2, r3
|
|
strh r1, [r2, #0xa]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBD48: .word 0x0380FFF4
|
|
arm_func_end sub_027EBD2C
|
|
|
|
arm_func_start sub_027EBD4C
|
|
sub_027EBD4C: ; 0x027EBD4C
|
|
ldr r3, _027EBD9C ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr ip, [r3]
|
|
mvn r3, r2, lsl r0
|
|
add r2, ip, #0x12c
|
|
add ip, r2, #0x400
|
|
ldrh r2, [ip, #2]
|
|
and r2, r2, r3
|
|
orr r0, r2, r1, lsl r0
|
|
strh r0, [ip, #2]
|
|
ldrh r0, [ip, #6]
|
|
ldrh r1, [ip, #2]
|
|
mvn r0, r0
|
|
tst r1, r0
|
|
ldrne r0, _027EBDA0 ; =0x048080AC
|
|
mov r1, #8
|
|
strneh r1, [r0]
|
|
ldreq r0, _027EBDA4 ; =0x048080AE
|
|
streqh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBD9C: .word 0x0380FFF4
|
|
_027EBDA0: .word 0x048080AC
|
|
_027EBDA4: .word 0x048080AE
|
|
arm_func_end sub_027EBD4C
|
|
|
|
arm_func_start sub_027EBDA8
|
|
sub_027EBDA8: ; 0x027EBDA8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x40
|
|
bne _027EBDDC
|
|
ldr r1, _027EBDE4 ; =0x0380FFF4
|
|
mov r0, #1
|
|
ldr r2, [r1]
|
|
mvn r1, r0, lsl r4
|
|
add r0, r2, #0x500
|
|
ldrh r2, [r0, #0x30]
|
|
and r1, r2, r1
|
|
strh r1, [r0, #0x30]
|
|
_027EBDDC:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBDE4: .word 0x0380FFF4
|
|
arm_func_end sub_027EBDA8
|
|
|
|
arm_func_start sub_027EBDE8
|
|
sub_027EBDE8: ; 0x027EBDE8
|
|
ldr r1, _027EBE08 ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x500
|
|
ldrh r3, [r1, #0x30]
|
|
orr r0, r3, r2, lsl r0
|
|
strh r0, [r1, #0x30]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBE08: .word 0x0380FFF4
|
|
arm_func_end sub_027EBDE8
|
|
|
|
arm_func_start sub_027EBE0C
|
|
sub_027EBE0C: ; 0x027EBE0C
|
|
ldr r3, _027EBE28 ; =0x0380FFF4
|
|
mov r2, #0x1c
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #0x31c]
|
|
mla r2, r0, r2, r3
|
|
strh r1, [r2, #0xc]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBE28: .word 0x0380FFF4
|
|
arm_func_end sub_027EBE0C
|
|
|
|
arm_func_start sub_027EBE2C
|
|
sub_027EBE2C: ; 0x027EBE2C
|
|
ldr r3, _027EBE48 ; =0x0380FFF4
|
|
mov r2, #0x1c
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #0x31c]
|
|
mla r2, r0, r2, r3
|
|
strh r1, [r2, #0x10]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBE48: .word 0x0380FFF4
|
|
arm_func_end sub_027EBE2C
|
|
|
|
arm_func_start sub_027EBE4C
|
|
sub_027EBE4C: ; 0x027EBE4C
|
|
ldr r3, _027EBE68 ; =0x0380FFF4
|
|
mov r2, #0x1c
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #0x31c]
|
|
mla r2, r0, r2, r3
|
|
strh r1, [r2, #0x14]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBE68: .word 0x0380FFF4
|
|
arm_func_end sub_027EBE4C
|
|
|
|
arm_func_start sub_027EBE6C
|
|
sub_027EBE6C: ; 0x027EBE6C
|
|
ldr r3, _027EBE88 ; =0x0380FFF4
|
|
mov r2, #0x1c
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #0x31c]
|
|
mla r2, r0, r2, r3
|
|
strh r1, [r2, #0xe]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBE88: .word 0x0380FFF4
|
|
arm_func_end sub_027EBE6C
|
|
|
|
arm_func_start sub_027EBE8C
|
|
sub_027EBE8C: ; 0x027EBE8C
|
|
ldr r2, _027EBEAC ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
ldrh r0, [r1, #0x1a]
|
|
strh r0, [r1, #0x18]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBEAC: .word 0x0380FFF4
|
|
arm_func_end sub_027EBE8C
|
|
|
|
arm_func_start sub_027EBEB0
|
|
sub_027EBEB0: ; 0x027EBEB0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _027EBF5C ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r1, [r1]
|
|
mov r0, #0x1000000
|
|
add r1, r1, #0x12c
|
|
add r4, r1, #0x400
|
|
bl sub_037FB928
|
|
mov r6, r0
|
|
mov r5, #1
|
|
mov r1, #2
|
|
b _027EBF40
|
|
_027EBEE0:
|
|
ldrh r0, [r4, #0xe]
|
|
tst r0, r1
|
|
bne _027EBF38
|
|
orr r0, r0, r1
|
|
strh r0, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0xc]
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
bne _027EBF10
|
|
bl sub_027E9EE0
|
|
_027EBF10:
|
|
ldr r0, _027EBF5C ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r0]
|
|
mov r0, r6
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r7, r1, r2
|
|
strh r5, [r1, #2]
|
|
bl sub_037FB8F0
|
|
mov r0, r5
|
|
b _027EBF54
|
|
_027EBF38:
|
|
add r5, r5, #1
|
|
mov r1, r1, lsl #1
|
|
_027EBF40:
|
|
cmp r5, #0x10
|
|
blo _027EBEE0
|
|
mov r0, r6
|
|
bl sub_037FB8F0
|
|
mov r0, #0
|
|
_027EBF54:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBF5C: .word 0x0380FFF4
|
|
arm_func_end sub_027EBEB0
|
|
|
|
arm_func_start sub_027EBF60
|
|
sub_027EBF60: ; 0x027EBF60
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _027EBFDC ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r4, [r1]
|
|
bl sub_027EC1C8
|
|
mov r0, r5
|
|
bl sub_027EC0CC
|
|
cmp r0, #0
|
|
beq _027EBFD4
|
|
ldr r1, _027EBFDC ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r3, [r1]
|
|
mov r1, #0x1c
|
|
ldr r3, [r3, #0x31c]
|
|
mov ip, #0
|
|
mla r1, r5, r1, r3
|
|
strh ip, [r1, #2]
|
|
add r1, r4, #0x500
|
|
ldrh r3, [r1, #0x3a]
|
|
mvn r0, r2, lsl r0
|
|
and r0, r3, r0
|
|
strh r0, [r1, #0x3a]
|
|
ldrh r0, [r1, #0x38]
|
|
sub r0, r0, #1
|
|
strh r0, [r1, #0x38]
|
|
ldrh r0, [r1, #0x38]
|
|
cmp r0, #0
|
|
bne _027EBFD4
|
|
bl sub_027E9E94
|
|
_027EBFD4:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBFDC: .word 0x0380FFF4
|
|
arm_func_end sub_027EBF60
|
|
|
|
arm_func_start sub_027EBFE0
|
|
sub_027EBFE0: ; 0x027EBFE0
|
|
ldr r2, _027EBFFC ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
mul r1, r0, r1
|
|
ldr r0, [r2, #0x31c]
|
|
ldrh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EBFFC: .word 0x0380FFF4
|
|
arm_func_end sub_027EBFE0
|
|
|
|
arm_func_start sub_027EC000
|
|
sub_027EC000: ; 0x027EC000
|
|
ldr r1, _027EC01C ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x500
|
|
ldrh r1, [r1, #0x30]
|
|
mov r0, r1, asr r0
|
|
and r0, r0, #1
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC01C: .word 0x0380FFF4
|
|
arm_func_end sub_027EC000
|
|
|
|
arm_func_start sub_027EC020
|
|
sub_027EC020: ; 0x027EC020
|
|
ldr r1, _027EC03C ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x500
|
|
ldrh r1, [r1, #0x2e]
|
|
mov r0, r1, asr r0
|
|
and r0, r0, #1
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC03C: .word 0x0380FFF4
|
|
arm_func_end sub_027EC020
|
|
|
|
arm_func_start sub_027EC040
|
|
sub_027EC040: ; 0x027EC040
|
|
ldr r2, _027EC05C ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
add r0, r1, #4
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC05C: .word 0x0380FFF4
|
|
arm_func_end sub_027EC040
|
|
|
|
arm_func_start sub_027EC060
|
|
sub_027EC060: ; 0x027EC060
|
|
ldr r2, _027EC07C ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
ldrh r0, [r1, #0xe]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC07C: .word 0x0380FFF4
|
|
arm_func_end sub_027EC060
|
|
|
|
arm_func_start sub_027EC080
|
|
sub_027EC080: ; 0x027EC080
|
|
ldr r2, _027EC09C ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
ldrh r0, [r1, #0x14]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC09C: .word 0x0380FFF4
|
|
arm_func_end sub_027EC080
|
|
|
|
arm_func_start sub_027EC0A0
|
|
sub_027EC0A0: ; 0x027EC0A0
|
|
ldr r2, _027EC0C8 ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
ldrh r0, [r1, #0x10]
|
|
tst r0, #2
|
|
movne r0, #0x14
|
|
moveq r0, #0xa
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC0C8: .word 0x0380FFF4
|
|
arm_func_end sub_027EC0A0
|
|
|
|
arm_func_start sub_027EC0CC
|
|
sub_027EC0CC: ; 0x027EC0CC
|
|
ldr r2, _027EC0E8 ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
ldrh r0, [r1, #2]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC0E8: .word 0x0380FFF4
|
|
arm_func_end sub_027EC0CC
|
|
|
|
arm_func_start sub_027EC0EC
|
|
sub_027EC0EC: ; 0x027EC0EC
|
|
ldr r2, _027EC108 ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
ldrh r0, [r1, #0x16]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC108: .word 0x0380FFF4
|
|
arm_func_end sub_027EC0EC
|
|
|
|
arm_func_start sub_027EC10C
|
|
sub_027EC10C: ; 0x027EC10C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r0
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x40
|
|
bne _027EC1B8
|
|
ldr r0, _027EC1C0 ; =0x0380FFF4
|
|
mov r1, #1
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x500
|
|
ldrh r0, [r0, #0x34]
|
|
tst r0, r1, lsl r5
|
|
bne _027EC1B8
|
|
add r0, r2, #0x300
|
|
ldrh r2, [r0, #0xd8]
|
|
ldr r1, _027EC1C4 ; =0x0480425C
|
|
mov r0, #0x1000000
|
|
add r6, r2, r1
|
|
bl sub_037FB928
|
|
mov r4, r0
|
|
cmp r5, #0
|
|
bne _027EC17C
|
|
add r0, r6, #4
|
|
bl sub_027EAD50
|
|
orr r1, r0, #1
|
|
add r0, r6, #4
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
b _027EC1B0
|
|
_027EC17C:
|
|
mov r0, r5
|
|
bl sub_027EC0CC
|
|
mov r5, r0
|
|
add r0, r6, #5
|
|
add r6, r0, r5, lsr #3
|
|
mov r0, r6
|
|
bl sub_027EAD50
|
|
and r1, r5, #7
|
|
mov r2, #1
|
|
orr r1, r0, r2, lsl r1
|
|
mov r0, r6
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
_027EC1B0:
|
|
mov r0, r4
|
|
bl sub_037FB8F0
|
|
_027EC1B8:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC1C0: .word 0x0380FFF4
|
|
_027EC1C4: .word 0x0480425C
|
|
arm_func_end sub_027EC10C
|
|
|
|
arm_func_start sub_027EC1C8
|
|
sub_027EC1C8: ; 0x027EC1C8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r0
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x40
|
|
bne _027EC264
|
|
ldr r0, _027EC26C ; =0x0380FFF4
|
|
ldr r2, _027EC270 ; =0x0480425C
|
|
ldr r1, [r0]
|
|
mov r0, #0x1000000
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0xd8]
|
|
add r6, r1, r2
|
|
bl sub_037FB928
|
|
mov r4, r0
|
|
cmp r5, #0
|
|
bne _027EC224
|
|
add r0, r6, #4
|
|
bl sub_027EAD50
|
|
and r1, r0, #0xfe
|
|
add r0, r6, #4
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
b _027EC25C
|
|
_027EC224:
|
|
mov r0, r5
|
|
bl sub_027EC0CC
|
|
mov r5, r0
|
|
add r0, r6, #5
|
|
add r6, r0, r5, lsr #3
|
|
mov r0, r6
|
|
bl sub_027EAD50
|
|
and r1, r5, #7
|
|
mov r2, #1
|
|
mvn r1, r2, lsl r1
|
|
and r1, r1, r0
|
|
mov r0, r6
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
_027EC25C:
|
|
mov r0, r4
|
|
bl sub_037FB8F0
|
|
_027EC264:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC26C: .word 0x0380FFF4
|
|
_027EC270: .word 0x0480425C
|
|
arm_func_end sub_027EC1C8
|
|
|
|
arm_func_start sub_027EC274
|
|
sub_027EC274: ; 0x027EC274
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr fp, _027EC424 ; =0x0380FFF4
|
|
mov sb, #0
|
|
ldr r2, [fp]
|
|
mov r8, #1
|
|
ldr r1, [r2, #0x31c]
|
|
add r0, r2, #0x500
|
|
ldrh sl, [r0, #0x2c]
|
|
add r0, r2, #0x12c
|
|
add r7, r1, #0x1c
|
|
add r5, r0, #0x400
|
|
add r4, r2, #0x300
|
|
b _027EC410
|
|
_027EC2A8:
|
|
ldrh r0, [r7]
|
|
cmp r0, #0
|
|
beq _027EC400
|
|
ldrh r1, [r7, #0x18]
|
|
cmp r1, #0
|
|
ldrne r0, _027EC428 ; =0x0000FFFF
|
|
cmpne r1, r0
|
|
beq _027EC3FC
|
|
sub r0, r1, #1
|
|
strh r0, [r7, #0x18]
|
|
ldrh r0, [r7, #0x18]
|
|
cmp r0, #0
|
|
bne _027EC3FC
|
|
ldrh r0, [r7]
|
|
cmp r0, #0x20
|
|
blo _027EC3E8
|
|
mov r0, r8
|
|
bl sub_027EBFE0
|
|
mov r6, r0
|
|
mov r0, r8, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x20
|
|
bl sub_027EBC44
|
|
mov r0, r8
|
|
bl sub_027F0D60
|
|
ldrh r0, [r4, #0x50]
|
|
cmp r0, #1
|
|
bne _027EC398
|
|
cmp r6, #0x20
|
|
bls _027EC3E8
|
|
ldr r1, [fp]
|
|
mov r0, r8, lsl #0x10
|
|
add r3, r1, #0x500
|
|
ldrh r6, [r3, #0x34]
|
|
mov r2, #1
|
|
orr r2, r6, r2, lsl r8
|
|
strh r2, [r3, #0x34]
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0
|
|
bl sub_027EBD4C
|
|
ldr r1, [fp]
|
|
add r0, r7, #4
|
|
add r3, r1, #0x500
|
|
mov r1, #1
|
|
ldrh r6, [r3, #0x30]
|
|
mov r2, r1
|
|
orr r2, r6, r2, lsl r8
|
|
strh r2, [r3, #0x30]
|
|
mov r2, #0
|
|
bl sub_027F1EBC
|
|
cmp r0, #0
|
|
mov r1, #1
|
|
beq _027EC38C
|
|
strh r1, [r0]
|
|
bl sub_027F107C
|
|
add sb, sb, #1
|
|
b _027EC408
|
|
_027EC38C:
|
|
add r0, r7, #4
|
|
bl sub_027EDBE4
|
|
b _027EC3E8
|
|
_027EC398:
|
|
ldrh r0, [r4, #0xcc]
|
|
cmp r8, r0
|
|
bne _027EC3E8
|
|
add r0, r7, #4
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl sub_027F1EBC
|
|
cmp r0, #0
|
|
beq _027EC3D0
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
bl sub_027F107C
|
|
add sb, sb, #1
|
|
b _027EC408
|
|
_027EC3D0:
|
|
mov r0, #0x20
|
|
bl sub_037F9238
|
|
bl sub_027EA03C
|
|
add r0, r7, #4
|
|
mov r1, #1
|
|
bl sub_027EDBE4
|
|
_027EC3E8:
|
|
mov r0, #0
|
|
strh r0, [r7]
|
|
ldrh r0, [r5]
|
|
sub r0, r0, #1
|
|
strh r0, [r5]
|
|
_027EC3FC:
|
|
add sb, sb, #1
|
|
_027EC400:
|
|
cmp sb, sl
|
|
bhs _027EC41C
|
|
_027EC408:
|
|
add r8, r8, #1
|
|
add r7, r7, #0x1c
|
|
_027EC410:
|
|
ldrh r0, [r4, #0x22]
|
|
cmp r8, r0
|
|
blo _027EC2A8
|
|
_027EC41C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC424: .word 0x0380FFF4
|
|
_027EC428: .word 0x0000FFFF
|
|
arm_func_end sub_027EC274
|
|
|
|
arm_func_start sub_027EC42C
|
|
sub_027EC42C: ; 0x027EC42C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_027F0D60
|
|
ldr r2, _027EC470 ; =0x0380FFF4
|
|
mov r0, #0x1c
|
|
ldr r1, [r2]
|
|
mul r0, r4, r0
|
|
ldr r1, [r1, #0x31c]
|
|
mov r3, #0
|
|
strh r3, [r1, r0]
|
|
ldr r0, [r2]
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0x2c]
|
|
sub r1, r1, #1
|
|
strh r1, [r0, #0x2c]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC470: .word 0x0380FFF4
|
|
arm_func_end sub_027EC42C
|
|
|
|
arm_func_start sub_027EC474
|
|
sub_027EC474: ; 0x027EC474
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _027EC504 ; =0x0380FFF4
|
|
mov r2, #0x1c
|
|
ldr r3, [r0]
|
|
mov r0, #0
|
|
add r1, r3, #0x300
|
|
ldrh r5, [r1, #0x22]
|
|
ldr r4, [r3, #0x31c]
|
|
mul r2, r5, r2
|
|
mov r1, r4
|
|
bl sub_037FDF74
|
|
ldr r1, _027EC504 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
mov r2, #0x10
|
|
add r1, r1, #0x12c
|
|
add r1, r1, #0x400
|
|
bl sub_037FDF74
|
|
ldr r2, _027EC508 ; =0x0000FFFF
|
|
mov r3, #1
|
|
strh r2, [r4, #0x1a]
|
|
mov r0, #0x1c
|
|
b _027EC4DC
|
|
_027EC4D0:
|
|
mla r1, r3, r0, r4
|
|
strh r2, [r1, #0x1a]
|
|
add r3, r3, #1
|
|
_027EC4DC:
|
|
cmp r3, r5
|
|
blo _027EC4D0
|
|
ldr r1, _027EC50C ; =0x027F74A4
|
|
mov r0, #0
|
|
bl sub_027EC598
|
|
mov r0, #0
|
|
mov r1, #0x40
|
|
bl sub_027EBC44
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC504: .word 0x0380FFF4
|
|
_027EC508: .word 0x0000FFFF
|
|
_027EC50C: .word 0x027F74A4
|
|
arm_func_end sub_027EC474
|
|
|
|
arm_func_start sub_027EC510
|
|
sub_027EC510: ; 0x027EC510
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r0, _027EC590 ; =0x0380FFF4
|
|
mov r6, #1
|
|
ldr r2, [r0]
|
|
mov sl, #0
|
|
add r1, r2, #0x300
|
|
add r0, r2, #0x12c
|
|
ldr r4, [r2, #0x31c]
|
|
ldrh r7, [r1, #0x22]
|
|
add r5, r0, #0x400
|
|
mov sb, #0x1a
|
|
mov r8, #0x1c
|
|
b _027EC558
|
|
_027EC544:
|
|
mla r1, r6, r8, r4
|
|
mov r0, sl
|
|
mov r2, sb
|
|
bl sub_037FDF74
|
|
add r6, r6, #1
|
|
_027EC558:
|
|
cmp r6, r7
|
|
blo _027EC544
|
|
mov r2, #1
|
|
strh r2, [r5]
|
|
mov r1, #0
|
|
strh r1, [r5, #2]
|
|
ldr r0, _027EC594 ; =0x0000FFFE
|
|
strh r2, [r5, #4]
|
|
strh r0, [r5, #6]
|
|
strh r1, [r5, #0xc]
|
|
strh r1, [r5, #8]
|
|
strh r2, [r5, #0xe]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC590: .word 0x0380FFF4
|
|
_027EC594: .word 0x0000FFFE
|
|
arm_func_end sub_027EC510
|
|
|
|
arm_func_start sub_027EC598
|
|
sub_027EC598: ; 0x027EC598
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r2, _027EC674 ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r4, [r2]
|
|
mov r0, #0x1c
|
|
mul r2, r7, r0
|
|
ldr r3, [r4, #0x31c]
|
|
mov r6, r1
|
|
ldrh r0, [r3, r2]
|
|
add r5, r3, r2
|
|
cmp r0, #0
|
|
addeq r0, r4, #0x500
|
|
ldreqh r1, [r0, #0x2c]
|
|
mov r2, #0x1a
|
|
addeq r1, r1, #1
|
|
streqh r1, [r0, #0x2c]
|
|
mov r1, r5
|
|
mov r0, #0
|
|
bl sub_037FDF74
|
|
ldr r0, _027EC674 ; =0x0380FFF4
|
|
mov r4, #1
|
|
ldr r1, [r0]
|
|
mov r0, r7, lsl #0x10
|
|
add r2, r1, #0x500
|
|
ldrh r3, [r2, #0x34]
|
|
mvn r1, r4, lsl r7
|
|
and r3, r3, r1
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0
|
|
strh r3, [r2, #0x34]
|
|
bl sub_027EBD4C
|
|
ldr r0, _027EC674 ; =0x0380FFF4
|
|
mov r1, r6
|
|
ldr r2, [r0]
|
|
add r0, r5, #4
|
|
add r2, r2, #0x500
|
|
ldrh r3, [r2, #0x30]
|
|
orr r3, r3, r4, lsl r7
|
|
strh r3, [r2, #0x30]
|
|
bl sub_027EA0E0
|
|
ldr r2, _027EC678 ; =0x0000FFFF
|
|
mov r0, r7, lsl #0x10
|
|
ldr r1, _027EC674 ; =0x0380FFF4
|
|
strh r2, [r5, #0x14]
|
|
ldr r1, [r1]
|
|
mov r0, r0, lsr #0x10
|
|
add r1, r1, #0x300
|
|
ldrh r2, [r1, #0xa6]
|
|
mov r1, #0x20
|
|
strh r2, [r5, #0x10]
|
|
ldrh r2, [r5, #0x1a]
|
|
strh r2, [r5, #0x18]
|
|
bl sub_027EBC44
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC674: .word 0x0380FFF4
|
|
_027EC678: .word 0x0000FFFF
|
|
arm_func_end sub_027EC598
|
|
|
|
arm_func_start sub_027EC67C
|
|
sub_027EC67C: ; 0x027EC67C
|
|
mov r0, #3
|
|
bx lr
|
|
arm_func_end sub_027EC67C
|
|
|
|
arm_func_start sub_027EC684
|
|
sub_027EC684: ; 0x027EC684
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r6, _027EC6E0 ; =0x0380FFF4
|
|
mov r5, #0
|
|
ldr r0, [r6]
|
|
mvn r4, #0
|
|
ldr r7, [r0, #0x1f4]
|
|
b _027EC6D0
|
|
_027EC6A0:
|
|
ldr r0, [r0, #0x304]
|
|
mov r1, r7
|
|
mov r2, r5
|
|
bl sub_037FC6D4
|
|
cmp r0, #0
|
|
beq _027EC6D8
|
|
ldr r0, [r6]
|
|
mov r1, r7
|
|
add r0, r0, #0x1f4
|
|
bl sub_037F87AC
|
|
ldr r0, [r6]
|
|
ldr r7, [r0, #0x1f4]
|
|
_027EC6D0:
|
|
cmp r7, r4
|
|
bne _027EC6A0
|
|
_027EC6D8:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC6E0: .word 0x0380FFF4
|
|
arm_func_end sub_027EC684
|
|
|
|
arm_func_start sub_027EC6E4
|
|
sub_027EC6E4: ; 0x027EC6E4
|
|
ldr r0, _027EC6FC ; =0x0380FFF4
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
strh r1, [r0, #0x28]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC6FC: .word 0x0380FFF4
|
|
arm_func_end sub_027EC6E4
|
|
|
|
arm_func_start sub_027EC700
|
|
sub_027EC700: ; 0x027EC700
|
|
stmdb sp!, {r4, lr}
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
mov r4, r0
|
|
ldrh r0, [r4, #0x10]
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bhi _027EC738
|
|
bl sub_037F9198
|
|
ldrh r0, [r4, #0x10]
|
|
cmp r0, #1
|
|
bne _027EC734
|
|
bl sub_027EA17C
|
|
_027EC734:
|
|
mov r0, #0
|
|
_027EC738:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027EC700
|
|
|
|
arm_func_start sub_027EC740
|
|
sub_027EC740: ; 0x027EC740
|
|
stmdb sp!, {r4, lr}
|
|
mov r2, #9
|
|
strh r2, [r1, #2]
|
|
mov r4, r0
|
|
ldrh r0, [r4, #0x10]
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bhi _027EC7DC
|
|
ldrh r1, [r4, #0x12]
|
|
cmp r1, #1
|
|
movhi r0, #5
|
|
bhi _027EC7DC
|
|
ldrh r1, [r4, #0x14]
|
|
cmp r1, #1
|
|
movhi r0, #5
|
|
bhi _027EC7DC
|
|
bl sub_027E9C4C
|
|
ldrh r0, [r4, #0x10]
|
|
cmp r0, #1
|
|
bne _027EC7C8
|
|
ldrh r0, [r4, #0x12]
|
|
cmp r0, #1
|
|
bne _027EC7A8
|
|
ldr r0, _027EC7E4 ; =0x00008001
|
|
bl sub_027E9CE0
|
|
b _027EC7B0
|
|
_027EC7A8:
|
|
mov r0, #0
|
|
bl sub_027E9CE0
|
|
_027EC7B0:
|
|
ldr r0, _027EC7E8 ; =0x0380FFF4
|
|
ldrh r1, [r4, #0x14]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
strh r1, [r0, #0x58]
|
|
b _027EC7D8
|
|
_027EC7C8:
|
|
mov r0, #0x8000
|
|
bl sub_027E9CE0
|
|
mov r0, #2
|
|
bl sub_027E9CB4
|
|
_027EC7D8:
|
|
mov r0, #0
|
|
_027EC7DC:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC7E4: .word 0x00008001
|
|
_027EC7E8: .word 0x0380FFF4
|
|
arm_func_end sub_027EC740
|
|
|
|
arm_func_start sub_027EC7EC
|
|
sub_027EC7EC: ; 0x027EC7EC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r2, _027EC928 ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r3, [r2]
|
|
ldrh r2, [r5, #2]
|
|
add r1, r3, #4
|
|
add r4, r1, #0x400
|
|
sub r1, r2, #3
|
|
strh r1, [r4, #4]
|
|
mov r1, #3
|
|
strh r1, [r5, #2]
|
|
add r1, r3, #0x300
|
|
ldrh r1, [r1, #0x2e]
|
|
mov r6, r0
|
|
cmp r1, #1
|
|
cmpne r1, #3
|
|
cmpne r1, #2
|
|
movne r0, #0xb
|
|
bne _027EC920
|
|
ldr r0, _027EC928 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0x20
|
|
movlo r0, #1
|
|
blo _027EC920
|
|
ldrh r0, [r6, #0x16]
|
|
cmp r0, #0x20
|
|
movhi r0, #5
|
|
bhi _027EC920
|
|
ldrh r0, [r6, #0x38]
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bhi _027EC920
|
|
add r0, r6, #0x3a
|
|
bl sub_027EAD50
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _027EC920
|
|
ldrh r0, [r6, #0x4a]
|
|
cmp r0, #0x3e8
|
|
movhi r0, #5
|
|
bhi _027EC920
|
|
cmp r0, #0xa
|
|
movlo r0, #5
|
|
blo _027EC920
|
|
ldrh r0, [r6, #0x4c]
|
|
cmp r0, #0x10
|
|
movhi r0, #5
|
|
bhi _027EC920
|
|
mov r8, #0
|
|
add r7, r6, #0x3a
|
|
b _027EC8E4
|
|
_027EC8C0:
|
|
add r0, r7, r8
|
|
bl sub_027EAD50
|
|
cmp r0, #0
|
|
beq _027EC8EC
|
|
bl sub_027EA4A4
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _027EC920
|
|
add r8, r8, #1
|
|
_027EC8E4:
|
|
cmp r8, #0x10
|
|
blo _027EC8C0
|
|
_027EC8EC:
|
|
add r0, r6, #0x10
|
|
bl sub_027E956C
|
|
ldrh r0, [r6, #0x16]
|
|
add r1, r6, #0x18
|
|
bl sub_027E95D0
|
|
str r6, [r4, #0x18]
|
|
str r5, [r4, #0x1c]
|
|
mov r2, #0x10
|
|
mov r0, #2
|
|
mov r1, #0
|
|
strh r2, [r4]
|
|
bl sub_037F8598
|
|
mov r0, #0x80
|
|
_027EC920:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EC928: .word 0x0380FFF4
|
|
arm_func_end sub_027EC7EC
|
|
|
|
arm_func_start sub_027EC92C
|
|
sub_027EC92C: ; 0x027EC92C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _027ECADC ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r3, [r2]
|
|
mov r1, #5
|
|
strh r1, [r5, #2]
|
|
add r1, r3, #0x300
|
|
ldrh r2, [r1, #0x2e]
|
|
add r1, r3, #4
|
|
mov r6, r0
|
|
cmp r2, #3
|
|
add r0, r3, #0x344
|
|
cmpne r2, #2
|
|
add r4, r1, #0x400
|
|
movne r0, #0xb
|
|
bne _027ECAD4
|
|
ldrh r0, [r0, #8]
|
|
cmp r0, #0x20
|
|
movlo r0, #1
|
|
blo _027ECAD4
|
|
mov r0, #0x20
|
|
bl sub_037F9238
|
|
ldrh r0, [r6, #0x18]
|
|
tst r0, #1
|
|
movne r0, #5
|
|
bne _027ECAD4
|
|
ldrh r0, [r6, #0x1e]
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _027ECAD4
|
|
cmp r0, #0x20
|
|
movhi r0, #5
|
|
bhi _027ECAD4
|
|
ldrh r0, [r6, #0x46]
|
|
cmp r0, #0xa
|
|
movlo r0, #5
|
|
blo _027ECAD4
|
|
cmp r0, #0x3e8
|
|
movhi r0, #5
|
|
bhi _027ECAD4
|
|
ldrh r0, [r6, #0x48]
|
|
cmp r0, #0xff
|
|
movhi r0, #5
|
|
bhi _027ECAD4
|
|
ldrh r0, [r6, #0x4a]
|
|
ldr r1, _027ECAE0 ; =0x0000FFF0
|
|
tst r0, r1
|
|
movne r0, #5
|
|
bne _027ECAD4
|
|
bl sub_027EA4A4
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _027ECAD4
|
|
ldrh r2, [r6, #0x42]
|
|
mov r0, #0x1000
|
|
rsb r0, r0, #0
|
|
tst r2, r0
|
|
movne r0, #5
|
|
bne _027ECAD4
|
|
ldrh r1, [r6, #0x44]
|
|
tst r1, r0
|
|
movne r0, #5
|
|
bne _027ECAD4
|
|
cmp r2, #0
|
|
moveq r0, #5
|
|
beq _027ECAD4
|
|
orrs r0, r1, r2
|
|
moveq r0, #5
|
|
beq _027ECAD4
|
|
ldrh r0, [r6, #0x10]
|
|
cmp r0, #0x7d0
|
|
movhi r0, #5
|
|
bhi _027ECAD4
|
|
mov r0, #0
|
|
bl sub_027F4D2C
|
|
cmp r0, #0
|
|
movne r0, #0xe
|
|
bne _027ECAD4
|
|
ldrh r0, [r6, #0x40]
|
|
tst r0, #0x20
|
|
beq _027ECA7C
|
|
mov r0, #1
|
|
bl sub_027E9290
|
|
b _027ECA84
|
|
_027ECA7C:
|
|
mov r0, #0
|
|
bl sub_027E9290
|
|
_027ECA84:
|
|
add r0, r6, #0x18
|
|
bl sub_027E956C
|
|
ldrh r0, [r6, #0x1e]
|
|
add r1, r6, #0x20
|
|
bl sub_027E95D0
|
|
ldrh r0, [r6, #0x46]
|
|
bl sub_027E96E0
|
|
ldrh r0, [r6, #0x4a]
|
|
mov r1, #0
|
|
bl sub_027E9900
|
|
add r0, r6, #0x42
|
|
bl sub_027E9B8C
|
|
str r6, [r4, #0x18]
|
|
str r5, [r4, #0x1c]
|
|
mov r2, #0x20
|
|
mov r0, #2
|
|
mov r1, #1
|
|
strh r2, [r4]
|
|
bl sub_037F8598
|
|
mov r0, #0x80
|
|
_027ECAD4:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ECADC: .word 0x0380FFF4
|
|
_027ECAE0: .word 0x0000FFF0
|
|
arm_func_end sub_027EC92C
|
|
|
|
arm_func_start sub_027ECAE4
|
|
sub_027ECAE4: ; 0x027ECAE4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _027ECBB4 ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r3, [r2]
|
|
mov r1, #6
|
|
strh r1, [r5, #2]
|
|
add r1, r3, #0x300
|
|
ldrh r2, [r1, #0x2e]
|
|
add r1, r3, #4
|
|
mov r6, r0
|
|
cmp r2, #3
|
|
add r0, r3, #0x344
|
|
cmpne r2, #2
|
|
add r4, r1, #0x400
|
|
movne r0, #0xb
|
|
bne _027ECBAC
|
|
ldrh r0, [r0, #8]
|
|
cmp r0, #0x20
|
|
movlo r0, #1
|
|
blo _027ECBAC
|
|
ldrh r0, [r6, #0x10]
|
|
tst r0, #1
|
|
movne r0, #5
|
|
bne _027ECBAC
|
|
ldrh r0, [r6, #0x16]
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bhi _027ECBAC
|
|
ldrh r0, [r6, #0x18]
|
|
cmp r0, #0x7d0
|
|
movhi r0, #5
|
|
bhi _027ECBAC
|
|
cmp r0, #0xa
|
|
movlo r0, #5
|
|
blo _027ECBAC
|
|
mov r0, #0x20
|
|
bl sub_037F9238
|
|
str r6, [r4, #0x18]
|
|
str r5, [r4, #0x1c]
|
|
mov r0, #0x30
|
|
strh r0, [r4]
|
|
ldr r1, [r4, #0x18]
|
|
add r0, r5, #8
|
|
ldrh r1, [r1, #0x16]
|
|
strh r1, [r5, #0xe]
|
|
ldr r1, [r4, #0x18]
|
|
add r1, r1, #0x10
|
|
bl sub_027EA0E0
|
|
bl sub_027ED544
|
|
mov r0, #0x80
|
|
_027ECBAC:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ECBB4: .word 0x0380FFF4
|
|
arm_func_end sub_027ECAE4
|
|
|
|
arm_func_start sub_027ECBB8
|
|
sub_027ECBB8: ; 0x027ECBB8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r3, _027ECCE8 ; =0x0380FFF4
|
|
mov r6, r1
|
|
ldr r2, [r3]
|
|
mov r1, #4
|
|
strh r1, [r6, #2]
|
|
ldr r3, [r3]
|
|
add r1, r2, #4
|
|
add r2, r3, #0x300
|
|
ldrh r2, [r2, #0x2e]
|
|
mov r7, r0
|
|
cmp r2, #3
|
|
cmpne r2, #2
|
|
cmpne r2, #1
|
|
add r5, r1, #0x400
|
|
movne r0, #0xb
|
|
bne _027ECCE0
|
|
add r0, r3, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0x30
|
|
movlo r0, #1
|
|
blo _027ECCE0
|
|
add r0, r2, #0xfe
|
|
add r0, r0, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #1
|
|
bhi _027ECC38
|
|
ldrh r0, [r7, #0x10]
|
|
tst r0, #1
|
|
movne r0, #5
|
|
bne _027ECCE0
|
|
_027ECC38:
|
|
add r0, r6, #6
|
|
add r1, r7, #0x10
|
|
bl sub_027EA0E0
|
|
ldrh r1, [r7, #0x16]
|
|
add r0, r6, #6
|
|
mov r2, #0
|
|
bl sub_027F1EBC
|
|
movs r4, r0
|
|
moveq r0, #8
|
|
beq _027ECCE0
|
|
str r7, [r5, #0x18]
|
|
str r6, [r5, #0x1c]
|
|
str r4, [r5, #4]
|
|
mov r0, #0x41
|
|
strh r0, [r5]
|
|
ldrh r0, [r7, #0x10]
|
|
tst r0, #1
|
|
beq _027ECCCC
|
|
ldr r2, _027ECCE8 ; =0x0380FFF4
|
|
sub r1, r4, #0x10
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, #0x3ec]
|
|
strh r0, [r4, #4]
|
|
ldr r0, [r2]
|
|
add r0, r0, #0x188
|
|
bl sub_027EBAE8
|
|
ldr r0, _027ECCE8 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0x32]
|
|
ldrh r2, [r0, #0x2e]
|
|
mvn r0, r1
|
|
tst r2, r0
|
|
bne _027ECCDC
|
|
mov r0, #2
|
|
bl sub_027EFEF4
|
|
b _027ECCDC
|
|
_027ECCCC:
|
|
add r0, r7, #0x10
|
|
bl sub_027F0E58
|
|
mov r0, r4
|
|
bl sub_027F107C
|
|
_027ECCDC:
|
|
mov r0, #0x80
|
|
_027ECCE0:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ECCE8: .word 0x0380FFF4
|
|
arm_func_end sub_027ECBB8
|
|
|
|
arm_func_start sub_027ECCEC
|
|
sub_027ECCEC: ; 0x027ECCEC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r2, _027ECDC0 ; =0x0380FFF4
|
|
mov r6, r1
|
|
ldr r3, [r2]
|
|
mov r1, #3
|
|
strh r1, [r6, #2]
|
|
add r1, r3, #0x300
|
|
ldrh r2, [r1, #0x2e]
|
|
add r1, r3, #4
|
|
cmp r2, #3
|
|
mov r7, r0
|
|
cmpne r2, #2
|
|
add r4, r3, #0x344
|
|
add r5, r1, #0x400
|
|
movne r0, #0xb
|
|
bne _027ECDB8
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x30
|
|
movlo r0, #1
|
|
blo _027ECDB8
|
|
ldrh r0, [r7, #0x10]
|
|
tst r0, #1
|
|
movne r0, #5
|
|
bne _027ECDB8
|
|
ldrh r0, [r7, #0x16]
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _027ECDB8
|
|
cmp r0, #0xff
|
|
movhi r0, #5
|
|
bhi _027ECDB8
|
|
ldrh r0, [r7, #0x18]
|
|
cmp r0, #0x7d0
|
|
movhi r0, #5
|
|
bhi _027ECDB8
|
|
cmp r0, #0xa
|
|
movlo r0, #5
|
|
blo _027ECDB8
|
|
mov r0, #0x30
|
|
bl sub_037F9238
|
|
bl sub_027EA03C
|
|
ldrh r1, [r7, #0x16]
|
|
mov r0, #0x50
|
|
strh r1, [r4, #0x70]
|
|
ldrh r1, [r7, #0x16]
|
|
strh r1, [r4, #0x72]
|
|
str r7, [r5, #0x18]
|
|
str r6, [r5, #0x1c]
|
|
strh r0, [r5]
|
|
bl sub_027ED668
|
|
mov r0, #0x80
|
|
_027ECDB8:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ECDC0: .word 0x0380FFF4
|
|
arm_func_end sub_027ECCEC
|
|
|
|
arm_func_start sub_027ECDC4
|
|
sub_027ECDC4: ; 0x027ECDC4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, _027ECE80 ; =0x0380FFF4
|
|
mov r2, #3
|
|
ldr ip, [r3]
|
|
strh r2, [r1, #2]
|
|
add r2, ip, #0x300
|
|
ldrh r3, [r2, #0x2e]
|
|
add r2, ip, #4
|
|
cmp r3, #3
|
|
cmpne r3, #2
|
|
add ip, ip, #0x344
|
|
add lr, r2, #0x400
|
|
movne r0, #0xb
|
|
bne _027ECE78
|
|
ldrh r2, [ip, #8]
|
|
cmp r2, #0x30
|
|
movlo r0, #1
|
|
blo _027ECE78
|
|
ldrh r2, [r0, #0x10]
|
|
tst r2, #1
|
|
movne r0, #5
|
|
bne _027ECE78
|
|
ldrh r3, [r0, #0x16]
|
|
cmp r3, #1
|
|
movlo r0, #5
|
|
blo _027ECE78
|
|
cmp r3, #0xff
|
|
movhi r0, #5
|
|
bhi _027ECE78
|
|
ldrh r2, [r0, #0x18]
|
|
cmp r2, #0x7d0
|
|
movhi r0, #5
|
|
bhi _027ECE78
|
|
cmp r2, #0xa
|
|
movlo r0, #5
|
|
blo _027ECE78
|
|
strh r3, [ip, #0x70]
|
|
ldrh r3, [r0, #0x16]
|
|
mov r2, #0x60
|
|
strh r3, [ip, #0x72]
|
|
str r0, [lr, #0x18]
|
|
str r1, [lr, #0x1c]
|
|
strh r2, [lr]
|
|
bl sub_027ED764
|
|
mov r0, #0x80
|
|
_027ECE78:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ECE80: .word 0x0380FFF4
|
|
arm_func_end sub_027ECDC4
|
|
|
|
arm_func_start sub_027ECE84
|
|
sub_027ECE84: ; 0x027ECE84
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r3, _027ECF8C ; =0x0380FFF4
|
|
mov r6, r1
|
|
ldr r2, [r3]
|
|
mov r1, #1
|
|
strh r1, [r6, #2]
|
|
ldr r3, [r3]
|
|
add r1, r2, #4
|
|
add r2, r3, #0x300
|
|
ldrh r2, [r2, #0x2e]
|
|
mov r7, r0
|
|
cmp r2, #0
|
|
add r5, r1, #0x400
|
|
moveq r0, #0xb
|
|
beq _027ECF84
|
|
cmp r2, #1
|
|
beq _027ECED8
|
|
ldrh r0, [r7, #0x10]
|
|
tst r0, #1
|
|
movne r0, #5
|
|
bne _027ECF84
|
|
_027ECED8:
|
|
add r0, r3, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0x40
|
|
movne r0, #1
|
|
bne _027ECF84
|
|
ldrh r1, [r7, #0x16]
|
|
add r0, r7, #0x10
|
|
bl sub_027F16A4
|
|
movs r4, r0
|
|
moveq r0, #8
|
|
beq _027ECF84
|
|
str r7, [r5, #0x18]
|
|
str r6, [r5, #0x1c]
|
|
str r4, [r5, #4]
|
|
mov r0, #0x71
|
|
strh r0, [r5]
|
|
ldrh r0, [r7, #0x10]
|
|
tst r0, #1
|
|
beq _027ECF70
|
|
ldr r2, _027ECF8C ; =0x0380FFF4
|
|
sub r1, r4, #0x10
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, #0x3ec]
|
|
strh r0, [r4, #4]
|
|
ldr r0, [r2]
|
|
add r0, r0, #0x188
|
|
bl sub_027EBAE8
|
|
ldr r0, _027ECF8C ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0x32]
|
|
ldrh r2, [r0, #0x2e]
|
|
mvn r0, r1
|
|
tst r2, r0
|
|
bne _027ECF80
|
|
mov r0, #2
|
|
bl sub_027EFEF4
|
|
b _027ECF80
|
|
_027ECF70:
|
|
add r0, r7, #0x10
|
|
bl sub_027F0E58
|
|
mov r0, r4
|
|
bl sub_027F107C
|
|
_027ECF80:
|
|
mov r0, #0x80
|
|
_027ECF84:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ECF8C: .word 0x0380FFF4
|
|
arm_func_end sub_027ECE84
|
|
|
|
arm_func_start sub_027ECF90
|
|
sub_027ECF90: ; 0x027ECF90
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r3, _027ED124 ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r3, [r3]
|
|
mov r6, r0
|
|
strh r2, [r1, #2]
|
|
add r5, r3, #0x31c
|
|
ldrh r0, [r5, #0x12]
|
|
add r4, r3, #0x344
|
|
cmp r0, #1
|
|
cmpne r0, #0
|
|
movne r0, #0xb
|
|
bne _027ED11C
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x20
|
|
movne r0, #1
|
|
bne _027ED11C
|
|
ldrh r0, [r6, #0x10]
|
|
cmp r0, #0x20
|
|
movhi r0, #5
|
|
bhi _027ED11C
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _027ED11C
|
|
ldrh r0, [r6, #0x32]
|
|
cmp r0, #0xa
|
|
movlo r0, #5
|
|
blo _027ED11C
|
|
cmp r0, #0x3e8
|
|
movhi r0, #5
|
|
bhi _027ED11C
|
|
ldrh r0, [r6, #0x34]
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _027ED11C
|
|
cmp r0, #0xff
|
|
movhi r0, #5
|
|
bhi _027ED11C
|
|
ldrh r0, [r6, #0x36]
|
|
ldr r1, _027ED128 ; =0x0000FFF0
|
|
tst r0, r1
|
|
movne r0, #5
|
|
bne _027ED11C
|
|
bl sub_027EA4A4
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _027ED11C
|
|
ldrh r1, [r6, #0x38]
|
|
cmp r1, #0
|
|
moveq r0, #5
|
|
beq _027ED11C
|
|
mov r0, #0x1000
|
|
rsb r0, r0, #0
|
|
tst r1, r0
|
|
movne r0, #5
|
|
bne _027ED11C
|
|
ldrh r1, [r6, #0x3a]
|
|
cmp r1, #0
|
|
moveq r0, #5
|
|
beq _027ED11C
|
|
tst r1, r0
|
|
movne r0, #5
|
|
bne _027ED11C
|
|
ldrh r0, [r6, #0x3c]
|
|
cmp r0, #0x80
|
|
movhi r0, #5
|
|
bhi _027ED11C
|
|
mov r0, #0
|
|
bl sub_027F4D2C
|
|
cmp r0, #0
|
|
movne r0, #0xe
|
|
bne _027ED11C
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r0, #0
|
|
bne _027ED0C8
|
|
ldr r0, _027ED12C ; =0x027F74A4
|
|
bl sub_027E956C
|
|
b _027ED0D0
|
|
_027ED0C8:
|
|
add r0, r5, #8
|
|
bl sub_027E956C
|
|
_027ED0D0:
|
|
ldrh r0, [r6, #0x10]
|
|
add r1, r6, #0x12
|
|
bl sub_027E95D0
|
|
ldrh r0, [r6, #0x32]
|
|
bl sub_027E96E0
|
|
ldrh r0, [r6, #0x34]
|
|
bl sub_027E9738
|
|
ldrh r0, [r6, #0x36]
|
|
mov r1, #0
|
|
bl sub_027E9900
|
|
add r0, r6, #0x38
|
|
bl sub_027E9B8C
|
|
ldrh r0, [r6, #0x3c]
|
|
add r1, r6, #0x3e
|
|
bl sub_027E9F10
|
|
mov r0, #0
|
|
strh r0, [r4, #0xa4]
|
|
bl sub_037F8DE0
|
|
mov r0, #0
|
|
_027ED11C:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ED124: .word 0x0380FFF4
|
|
_027ED128: .word 0x0000FFF0
|
|
_027ED12C: .word 0x027F74A4
|
|
arm_func_end sub_027ECF90
|
|
|
|
arm_func_start sub_027ED130
|
|
sub_027ED130: ; 0x027ED130
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r2, _027ED210 ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r3, [r2]
|
|
mov r1, #0x12
|
|
strh r1, [r5, #2]
|
|
ldr r2, [r2]
|
|
add r1, r3, #4
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x4c]
|
|
mov r6, r0
|
|
cmp r2, #0x20
|
|
add r4, r1, #0x400
|
|
movne r0, #1
|
|
bne _027ED208
|
|
ldrh r0, [r6, #0x12]
|
|
cmp r0, #3
|
|
movhi r0, #5
|
|
bhi _027ED208
|
|
ldrh r0, [r6, #0x14]
|
|
cmp r0, #0x3f
|
|
movhi r0, #5
|
|
bhi _027ED208
|
|
ldrh r0, [r6, #0x16]
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _027ED208
|
|
cmp r0, #0x3e8
|
|
movhi r0, #5
|
|
bhi _027ED208
|
|
mov r8, #0
|
|
add r7, r6, #0x18
|
|
b _027ED1D8
|
|
_027ED1B4:
|
|
add r0, r7, r8
|
|
bl sub_027EAD50
|
|
cmp r0, #0
|
|
beq _027ED1E0
|
|
bl sub_027EA4A4
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _027ED208
|
|
add r8, r8, #1
|
|
_027ED1D8:
|
|
cmp r8, #0x10
|
|
blo _027ED1B4
|
|
_027ED1E0:
|
|
cmp r8, #0
|
|
moveq r0, #5
|
|
beq _027ED208
|
|
str r6, [r4, #0x18]
|
|
str r5, [r4, #0x1c]
|
|
mov r0, #0x80
|
|
strh r0, [r4]
|
|
strh r0, [r5, #4]
|
|
bl sub_027ED858
|
|
mov r0, #0x80
|
|
_027ED208:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ED210: .word 0x0380FFF4
|
|
arm_func_end sub_027ED130
|
|
|
|
arm_func_start sub_027ED214
|
|
sub_027ED214: ; 0x027ED214
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r0, _027ED3FC ; =0x0380FFF4
|
|
mov r6, #0
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
sub r1, r1, #0x10
|
|
cmp r1, #5
|
|
add r4, r0, #0x400
|
|
add r5, r2, #0x344
|
|
addls pc, pc, r1, lsl #2
|
|
b _027ED3E0
|
|
_027ED248: ; jump table
|
|
b _027ED260 ; case 0
|
|
b _027ED2D8 ; case 1
|
|
b _027ED368 ; case 2
|
|
b _027ED368 ; case 3
|
|
b _027ED3E0 ; case 4
|
|
b _027ED3C0 ; case 5
|
|
_027ED260:
|
|
mov r0, #0x20
|
|
bl sub_037F9238
|
|
mov r0, #2
|
|
strh r0, [r5, #0xc]
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, r6
|
|
strh r1, [r0, #8]
|
|
ldr r0, [r4, #0x1c]
|
|
strh r1, [r0, #6]
|
|
strh r1, [r4, #6]
|
|
strh r1, [r4, #8]
|
|
ldr r1, [r4, #0x18]
|
|
ldrh r0, [r1, #0x38]
|
|
cmp r0, #0
|
|
ldrh r0, [r1, #0x4a]
|
|
bne _027ED2C8
|
|
add r1, r0, #3
|
|
mov r0, r1, asr #1
|
|
add r0, r1, r0, lsr #30
|
|
mov r0, r0, asr #2
|
|
strh r0, [r4, #0xc]
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #0xa
|
|
movlo r0, #0xa
|
|
strloh r0, [r4, #0xc]
|
|
b _027ED2CC
|
|
_027ED2C8:
|
|
strh r0, [r4, #0xc]
|
|
_027ED2CC:
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
_027ED2D8:
|
|
ldr r1, [r4, #0x18]
|
|
ldrh r0, [r4, #6]
|
|
add r1, r1, #0x3a
|
|
add r0, r1, r0
|
|
bl sub_027EAD50
|
|
movs r5, r0
|
|
moveq r0, #0x15
|
|
streqh r0, [r4]
|
|
moveq r6, #1
|
|
beq _027ED3E0
|
|
ldrh r1, [r4, #6]
|
|
mov r0, #0
|
|
add r1, r1, #1
|
|
strh r1, [r4, #6]
|
|
strh r0, [r4, #0xa]
|
|
bl sub_027F4D2C
|
|
cmp r0, #0
|
|
beq _027ED33C
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #0xe
|
|
strh r1, [r0, #4]
|
|
mov r0, #0x15
|
|
strh r0, [r4]
|
|
mov r6, #1
|
|
b _027ED3E0
|
|
_027ED33C:
|
|
ldrh r0, [r4]
|
|
mov r1, #0
|
|
cmp r0, #0x10
|
|
mov r0, r5
|
|
bne _027ED35C
|
|
bl sub_027E9900
|
|
bl sub_037F8DE0
|
|
b _027ED360
|
|
_027ED35C:
|
|
bl sub_027E9900
|
|
_027ED360:
|
|
mov r0, #0x12
|
|
strh r0, [r4]
|
|
_027ED368:
|
|
mov r0, #0x13
|
|
strh r0, [r4]
|
|
ldr r1, [r4, #0x18]
|
|
ldrh r0, [r1, #0x38]
|
|
cmp r0, #0
|
|
bne _027ED3B0
|
|
add r0, r1, #0x10
|
|
bl sub_027F1B50
|
|
cmp r0, #0
|
|
bne _027ED3AC
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #8
|
|
strh r1, [r0, #4]
|
|
mov r0, #0x15
|
|
strh r0, [r4]
|
|
mov r6, #1
|
|
b _027ED3E0
|
|
_027ED3AC:
|
|
bl sub_027F107C
|
|
_027ED3B0:
|
|
ldrh r0, [r4, #0xc]
|
|
ldr r1, _027ED400 ; =0x027ED404
|
|
bl sub_027EAAEC
|
|
b _027ED3E0
|
|
_027ED3C0:
|
|
strh r6, [r4]
|
|
bl sub_037F9198
|
|
ldr r0, _027ED3FC ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x2e]
|
|
strh r0, [r5, #0xc]
|
|
bl sub_027EDB14
|
|
_027ED3E0:
|
|
cmp r6, #0
|
|
beq _027ED3F4
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl sub_037F8598
|
|
_027ED3F4:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ED3FC: .word 0x0380FFF4
|
|
_027ED400: .word 0x027ED404
|
|
arm_func_end sub_027ED214
|
|
|
|
arm_func_start sub_027ED404
|
|
sub_027ED404: ; 0x027ED404
|
|
ldr r0, _027ED460 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #4
|
|
add r2, r0, #0x400
|
|
ldrh r1, [r2, #0xa]
|
|
ldrh r0, [r2, #0xc]
|
|
add r0, r1, r0
|
|
strh r0, [r2, #0xa]
|
|
ldr r0, [r2, #0x18]
|
|
ldrh r1, [r2, #0xa]
|
|
ldrh r0, [r0, #0x4a]
|
|
cmp r1, r0
|
|
blo _027ED450
|
|
ldrh r0, [r2, #6]
|
|
cmp r0, #0x10
|
|
movlo r0, #0x11
|
|
strloh r0, [r2]
|
|
movhs r0, #0x15
|
|
strhsh r0, [r2]
|
|
_027ED450:
|
|
ldr ip, _027ED464 ; =sub_037F8598
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_027ED460: .word 0x0380FFF4
|
|
_027ED464: .word sub_037F8598
|
|
arm_func_end sub_027ED404
|
|
|
|
arm_func_start sub_027ED468
|
|
sub_027ED468: ; 0x027ED468
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027ED500 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
cmp r1, #0x20
|
|
add r4, r0, #0x400
|
|
beq _027ED498
|
|
cmp r1, #0x25
|
|
beq _027ED4C4
|
|
b _027ED4F8
|
|
_027ED498:
|
|
bl sub_037F8DE0
|
|
mov r0, #0
|
|
strh r0, [r4, #4]
|
|
strh r0, [r4, #6]
|
|
mov r0, #0x21
|
|
strh r0, [r4]
|
|
ldr r0, [r4, #0x18]
|
|
ldr r1, _027ED504 ; =0x027ED508
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_027EAAEC
|
|
b _027ED4F8
|
|
_027ED4C4:
|
|
ldrh r1, [r4, #4]
|
|
ldr r0, [r4, #0x1c]
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r4, #6]
|
|
ldr r0, [r4, #0x1c]
|
|
strh r1, [r0, #6]
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _027ED4EC
|
|
bl sub_037F9198
|
|
_027ED4EC:
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
bl sub_027EDB14
|
|
_027ED4F8:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ED500: .word 0x0380FFF4
|
|
_027ED504: .word 0x027ED508
|
|
arm_func_end sub_027ED468
|
|
|
|
arm_func_start sub_027ED508
|
|
sub_027ED508: ; 0x027ED508
|
|
ldr r0, _027ED53C ; =0x0380FFF4
|
|
ldr ip, _027ED540 ; =sub_037F8598
|
|
ldr r2, [r0]
|
|
mov r1, #7
|
|
add r0, r2, #4
|
|
add r0, r0, #0x400
|
|
strh r1, [r0, #4]
|
|
mov r3, #0x25
|
|
add r2, r2, #0x400
|
|
mov r0, #2
|
|
mov r1, #1
|
|
strh r3, [r2, #4]
|
|
bx ip
|
|
.align 2, 0
|
|
_027ED53C: .word 0x0380FFF4
|
|
_027ED540: .word sub_037F8598
|
|
arm_func_end sub_027ED508
|
|
|
|
arm_func_start sub_027ED544
|
|
sub_027ED544: ; 0x027ED544
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027ED620 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
cmp r1, #0x30
|
|
add r4, r0, #0x400
|
|
beq _027ED574
|
|
cmp r1, #0x35
|
|
beq _027ED5F0
|
|
b _027ED618
|
|
_027ED574:
|
|
ldr r0, [r4, #0x18]
|
|
mov r1, #0
|
|
mov r2, r1
|
|
add r0, r0, #0x10
|
|
bl sub_027F1DFC
|
|
cmp r0, #0
|
|
bne _027ED5B4
|
|
ldr r1, [r4, #0x1c]
|
|
mov r2, #8
|
|
mov r0, #2
|
|
strh r2, [r1, #4]
|
|
mov r2, #0x35
|
|
mov r1, r0
|
|
strh r2, [r4]
|
|
bl sub_037F8598
|
|
b _027ED618
|
|
_027ED5B4:
|
|
ldr r1, [r4, #0x18]
|
|
mov r2, #1
|
|
ldrh r3, [r1, #0x16]
|
|
mov r1, #0
|
|
strh r3, [r0, #0x2c]
|
|
strh r2, [r0, #0x2e]
|
|
strh r1, [r0, #0x30]
|
|
mov r1, #0x31
|
|
strh r1, [r4]
|
|
bl sub_027F107C
|
|
ldr r0, [r4, #0x18]
|
|
ldr r1, _027ED624 ; =0x027ED628
|
|
ldrh r0, [r0, #0x18]
|
|
bl sub_027EAAEC
|
|
b _027ED618
|
|
_027ED5F0:
|
|
mov r0, #1
|
|
bl sub_027F0CD4
|
|
mov r0, #1
|
|
bl sub_027F0C70
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_027F0FF0
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
bl sub_027EDB14
|
|
_027ED618:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ED620: .word 0x0380FFF4
|
|
_027ED624: .word 0x027ED628
|
|
arm_func_end sub_027ED544
|
|
|
|
arm_func_start sub_027ED628
|
|
sub_027ED628: ; 0x027ED628
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _027ED664 ; =0x0380FFF4
|
|
mov r0, #2
|
|
ldr ip, [r1]
|
|
mov r3, #7
|
|
add r1, ip, #4
|
|
ldr r2, [r1, #0x41c]
|
|
mov r1, r0
|
|
strh r3, [r2, #4]
|
|
add r2, ip, #0x400
|
|
mov r3, #0x35
|
|
strh r3, [r2, #4]
|
|
bl sub_037F8598
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ED664: .word 0x0380FFF4
|
|
arm_func_end sub_027ED628
|
|
|
|
arm_func_start sub_027ED668
|
|
sub_027ED668: ; 0x027ED668
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027ED720 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
cmp r1, #0x50
|
|
add r4, r0, #0x400
|
|
beq _027ED698
|
|
cmp r1, #0x53
|
|
beq _027ED6F0
|
|
b _027ED718
|
|
_027ED698:
|
|
ldr r0, [r4, #0x18]
|
|
add r0, r0, #0x10
|
|
bl sub_027F1720
|
|
cmp r0, #0
|
|
bne _027ED6D0
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #8
|
|
strh r1, [r0, #4]
|
|
mov r2, #0x53
|
|
mov r0, #2
|
|
mov r1, #3
|
|
strh r2, [r4]
|
|
bl sub_037F8598
|
|
b _027ED718
|
|
_027ED6D0:
|
|
mov r1, #0x51
|
|
strh r1, [r4]
|
|
bl sub_027F107C
|
|
ldr r0, [r4, #0x18]
|
|
ldr r1, _027ED724 ; =0x027ED728
|
|
ldrh r0, [r0, #0x18]
|
|
bl sub_027EAAEC
|
|
b _027ED718
|
|
_027ED6F0:
|
|
mov r0, #1
|
|
bl sub_027F0CD4
|
|
mov r0, #1
|
|
bl sub_027F0C70
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_027F0FF0
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
bl sub_027EDB14
|
|
_027ED718:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ED720: .word 0x0380FFF4
|
|
_027ED724: .word 0x027ED728
|
|
arm_func_end sub_027ED668
|
|
|
|
arm_func_start sub_027ED728
|
|
sub_027ED728: ; 0x027ED728
|
|
ldr r0, _027ED75C ; =0x0380FFF4
|
|
ldr ip, _027ED760 ; =sub_037F8598
|
|
ldr r2, [r0]
|
|
mov r1, #7
|
|
add r0, r2, #4
|
|
ldr r0, [r0, #0x41c]
|
|
mov r3, #0x53
|
|
strh r1, [r0, #4]
|
|
add r2, r2, #0x400
|
|
mov r0, #2
|
|
mov r1, #3
|
|
strh r3, [r2, #4]
|
|
bx ip
|
|
.align 2, 0
|
|
_027ED75C: .word 0x0380FFF4
|
|
_027ED760: .word sub_037F8598
|
|
arm_func_end sub_027ED728
|
|
|
|
arm_func_start sub_027ED764
|
|
sub_027ED764: ; 0x027ED764
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027ED814 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
cmp r1, #0x60
|
|
add r4, r0, #0x400
|
|
beq _027ED794
|
|
cmp r1, #0x63
|
|
beq _027ED7EC
|
|
b _027ED80C
|
|
_027ED794:
|
|
ldr r0, [r4, #0x18]
|
|
add r0, r0, #0x10
|
|
bl sub_027F17C8
|
|
cmp r0, #0
|
|
bne _027ED7CC
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #8
|
|
strh r1, [r0, #4]
|
|
mov r2, #0x63
|
|
mov r0, #2
|
|
mov r1, #4
|
|
strh r2, [r4]
|
|
bl sub_037F8598
|
|
b _027ED80C
|
|
_027ED7CC:
|
|
mov r1, #0x61
|
|
strh r1, [r4]
|
|
bl sub_027F107C
|
|
ldr r0, [r4, #0x18]
|
|
ldr r1, _027ED818 ; =0x027ED81C
|
|
ldrh r0, [r0, #0x18]
|
|
bl sub_027EAAEC
|
|
b _027ED80C
|
|
_027ED7EC:
|
|
mov r0, #1
|
|
bl sub_027F0C70
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_027F0FF0
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
bl sub_027EDB14
|
|
_027ED80C:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027ED814: .word 0x0380FFF4
|
|
_027ED818: .word 0x027ED81C
|
|
arm_func_end sub_027ED764
|
|
|
|
arm_func_start sub_027ED81C
|
|
sub_027ED81C: ; 0x027ED81C
|
|
ldr r0, _027ED850 ; =0x0380FFF4
|
|
ldr ip, _027ED854 ; =sub_037F8598
|
|
ldr r2, [r0]
|
|
mov r1, #7
|
|
add r0, r2, #4
|
|
ldr r0, [r0, #0x41c]
|
|
mov r3, #0x63
|
|
strh r1, [r0, #4]
|
|
add r2, r2, #0x400
|
|
mov r0, #2
|
|
mov r1, #4
|
|
strh r3, [r2, #4]
|
|
bx ip
|
|
.align 2, 0
|
|
_027ED850: .word 0x0380FFF4
|
|
_027ED854: .word sub_037F8598
|
|
arm_func_end sub_027ED81C
|
|
|
|
arm_func_start sub_027ED858
|
|
sub_027ED858: ; 0x027ED858
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _027EDAB8 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
sub r1, r1, #0x80
|
|
cmp r1, #4
|
|
add r4, r2, #0x344
|
|
add r5, r0, #0x400
|
|
addls pc, pc, r1, lsl #2
|
|
b _027EDA98
|
|
_027ED888: ; jump table
|
|
b _027ED89C ; case 0
|
|
b _027ED8DC ; case 1
|
|
b _027ED990 ; case 2
|
|
b _027ED9B8 ; case 3
|
|
b _027EDA24 ; case 4
|
|
_027ED89C:
|
|
mov r0, #0
|
|
strh r0, [r5, #0x14]
|
|
mov r0, #0x13
|
|
bl sub_027EA5C4
|
|
strh r0, [r5, #0xe]
|
|
mov r0, #0x35
|
|
bl sub_027EA5C4
|
|
strh r0, [r5, #0x10]
|
|
ldr r1, [r5, #0x18]
|
|
ldrh r0, [r1, #0x12]
|
|
ldrh r1, [r1, #0x14]
|
|
bl sub_027E935C
|
|
mov r0, #4
|
|
strh r0, [r4, #0xc]
|
|
mov r0, #0
|
|
strh r0, [r5, #0x16]
|
|
_027ED8DC:
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
str r0, [r5, #8]
|
|
ldr r1, [r5, #0x18]
|
|
ldrh r0, [r5, #0x14]
|
|
add r1, r1, #0x18
|
|
add r0, r1, r0
|
|
bl sub_027EAD50
|
|
movs r4, r0
|
|
beq _027ED910
|
|
ldrh r0, [r5, #0x14]
|
|
cmp r0, #0x10
|
|
blo _027ED91C
|
|
_027ED910:
|
|
mov r0, #0x84
|
|
strh r0, [r5]
|
|
b _027EDA98
|
|
_027ED91C:
|
|
mov r0, #0
|
|
bl sub_027F4D2C
|
|
cmp r0, #0
|
|
movne r0, #0xe
|
|
strneh r0, [r5, #0x16]
|
|
movne r0, #0x84
|
|
strneh r0, [r5]
|
|
bne _027EDA98
|
|
ldrh r0, [r5]
|
|
mov r1, #0
|
|
cmp r0, #0x80
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bne _027ED974
|
|
bl sub_027E9900
|
|
bl sub_037F8DE0
|
|
ldr r1, _027EDABC ; =0x04808040
|
|
mov r0, #0x8000
|
|
ldrh r1, [r1]
|
|
strh r1, [r5, #0xc]
|
|
bl sub_027E9CE0
|
|
b _027ED978
|
|
_027ED974:
|
|
bl sub_027E9900
|
|
_027ED978:
|
|
mov r0, #0x82
|
|
strh r0, [r5]
|
|
ldr r0, [r5, #0x18]
|
|
ldr r1, _027EDAC0 ; =0x027EDAC8
|
|
ldrh r0, [r0, #0x16]
|
|
bl sub_027EAAEC
|
|
_027ED990:
|
|
ldr r1, [r5, #4]
|
|
ldr r0, _027EDAC4 ; =0x0480819C
|
|
add r1, r1, #1
|
|
str r1, [r5, #4]
|
|
ldrh r0, [r0]
|
|
tst r0, #1
|
|
ldrne r0, [r5, #8]
|
|
addne r0, r0, #0x64
|
|
strne r0, [r5, #8]
|
|
b _027EDA98
|
|
_027ED9B8:
|
|
ldr r1, [r5, #0x18]
|
|
ldrh r0, [r5, #0x14]
|
|
add r1, r1, #0x18
|
|
add r0, r1, r0
|
|
bl sub_027EAD50
|
|
ldr r1, [r5, #4]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
ldrne r0, [r5, #8]
|
|
mov r2, #0
|
|
cmpne r0, #0
|
|
beq _027ED9F8
|
|
bl sub_03806DD4
|
|
add r2, r0, #1
|
|
cmp r2, #0x64
|
|
movhi r2, #0x64
|
|
_027ED9F8:
|
|
ldr r1, [r5, #0x1c]
|
|
ldrh r0, [r5, #0x14]
|
|
orr r2, r4, r2, lsl #8
|
|
add r0, r1, r0, lsl #1
|
|
strh r2, [r0, #8]
|
|
ldrh r1, [r5, #0x14]
|
|
mov r0, #0x81
|
|
add r1, r1, #1
|
|
strh r1, [r5, #0x14]
|
|
strh r0, [r5]
|
|
b _027EDA98
|
|
_027EDA24:
|
|
bl sub_037F9198
|
|
ldr r1, _027EDAB8 ; =0x0380FFF4
|
|
mov r0, #0x13
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x2e]
|
|
strh r1, [r4, #0xc]
|
|
ldrh r1, [r5, #0xe]
|
|
bl sub_027EA5F0
|
|
ldrh r1, [r5, #0x10]
|
|
mov r0, #0x35
|
|
bl sub_027EA5F0
|
|
ldrh r0, [r5, #0xc]
|
|
bl sub_027E9CE0
|
|
ldrh r2, [r5, #0x16]
|
|
ldr r1, [r5, #0x1c]
|
|
mov r0, #0
|
|
strh r2, [r1, #4]
|
|
strh r0, [r5]
|
|
ldrh r2, [r5, #0x14]
|
|
mov r1, r0
|
|
b _027EDA8C
|
|
_027EDA7C:
|
|
ldr r0, [r5, #0x1c]
|
|
add r0, r0, r2, lsl #1
|
|
strh r1, [r0, #8]
|
|
add r2, r2, #1
|
|
_027EDA8C:
|
|
cmp r2, #0x10
|
|
blo _027EDA7C
|
|
bl sub_027EDB14
|
|
_027EDA98:
|
|
ldrh r0, [r5]
|
|
cmp r0, #0
|
|
beq _027EDAB0
|
|
mov r0, #2
|
|
mov r1, #5
|
|
bl sub_037F8598
|
|
_027EDAB0:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EDAB8: .word 0x0380FFF4
|
|
_027EDABC: .word 0x04808040
|
|
_027EDAC0: .word 0x027EDAC8
|
|
_027EDAC4: .word 0x0480819C
|
|
arm_func_end sub_027ED858
|
|
|
|
arm_func_start sub_027EDAC8
|
|
sub_027EDAC8: ; 0x027EDAC8
|
|
ldr r0, _027EDAEC ; =0x0380FFF4
|
|
ldr ip, _027EDAF0 ; =sub_037F8598
|
|
ldr r1, [r0]
|
|
mov r3, #0x83
|
|
add r2, r1, #0x400
|
|
mov r0, #2
|
|
mov r1, #5
|
|
strh r3, [r2, #4]
|
|
bx ip
|
|
.align 2, 0
|
|
_027EDAEC: .word 0x0380FFF4
|
|
_027EDAF0: .word sub_037F8598
|
|
arm_func_end sub_027EDAC8
|
|
|
|
arm_func_start sub_027EDAF4
|
|
sub_027EDAF4: ; 0x027EDAF4
|
|
ldr r0, _027EDB0C ; =0x0380FFF4
|
|
ldr ip, _027EDB10 ; =sub_027EDEC0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0xc6
|
|
add r0, r0, #0x300
|
|
bx ip
|
|
.align 2, 0
|
|
_027EDB0C: .word 0x0380FFF4
|
|
_027EDB10: .word sub_027EDEC0
|
|
arm_func_end sub_027EDAF4
|
|
|
|
arm_func_start sub_027EDB14
|
|
sub_027EDB14: ; 0x027EDB14
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027EDB64 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x24
|
|
add r1, r0, #0x400
|
|
ldrh r0, [r1, #4]
|
|
add r4, r2, #0x17c
|
|
bic r0, r0, #1
|
|
strh r0, [r1, #4]
|
|
ldr r1, [r2, #0x424]
|
|
add r0, r4, #0x84
|
|
bl sub_037F8D58
|
|
ldrh r0, [r4, #0x8c]
|
|
cmp r0, #0
|
|
beq _027EDB5C
|
|
mov r0, #2
|
|
mov r1, #0xb
|
|
bl sub_037F8598
|
|
_027EDB5C:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EDB64: .word 0x0380FFF4
|
|
arm_func_end sub_027EDB14
|
|
|
|
arm_func_start sub_027EDB68
|
|
sub_027EDB68: ; 0x027EDB68
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _027EDBE0 ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r1, [r2]
|
|
mov r6, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x18
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
bne _027EDBA0
|
|
mov r0, #1
|
|
bl sub_027EB06C
|
|
mov r0, #0
|
|
b _027EDBD8
|
|
_027EDBA0:
|
|
mov r0, #0x84
|
|
strh r0, [r4, #0xc]
|
|
mov r2, #4
|
|
mov r1, r6
|
|
add r0, r4, #0x10
|
|
strh r2, [r4, #0xe]
|
|
bl sub_027EA0E0
|
|
ldr r0, _027EDBE0 ; =0x0380FFF4
|
|
strh r5, [r4, #0x16]
|
|
ldr r0, [r0]
|
|
mov r1, r4
|
|
add r0, r0, #0x188
|
|
bl sub_037F8D58
|
|
mov r0, #1
|
|
_027EDBD8:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EDBE0: .word 0x0380FFF4
|
|
arm_func_end sub_027EDB68
|
|
|
|
arm_func_start sub_027EDBE4
|
|
sub_027EDBE4: ; 0x027EDBE4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _027EDC5C ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r1, [r2]
|
|
mov r6, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x18
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
bne _027EDC1C
|
|
mov r0, #1
|
|
bl sub_027EB06C
|
|
mov r0, #0
|
|
b _027EDC54
|
|
_027EDC1C:
|
|
mov r0, #0x85
|
|
strh r0, [r4, #0xc]
|
|
mov r2, #4
|
|
mov r1, r6
|
|
add r0, r4, #0x10
|
|
strh r2, [r4, #0xe]
|
|
bl sub_027EA0E0
|
|
ldr r0, _027EDC5C ; =0x0380FFF4
|
|
strh r5, [r4, #0x16]
|
|
ldr r0, [r0]
|
|
mov r1, r4
|
|
add r0, r0, #0x188
|
|
bl sub_037F8D58
|
|
mov r0, #1
|
|
_027EDC54:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EDC5C: .word 0x0380FFF4
|
|
arm_func_end sub_027EDBE4
|
|
|
|
arm_func_start sub_027EDC60
|
|
sub_027EDC60: ; 0x027EDC60
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r3, _027EDD50 ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r1, [r3]
|
|
mov r7, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x3a
|
|
mov r6, r2
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
bne _027EDC9C
|
|
mov r0, #1
|
|
bl sub_027EB06C
|
|
mov r0, #0
|
|
b _027EDD48
|
|
_027EDC9C:
|
|
mov r0, #0x86
|
|
strh r0, [r4, #0xc]
|
|
mov r2, #0x15
|
|
mov r1, r7
|
|
add r0, r4, #0x10
|
|
strh r2, [r4, #0xe]
|
|
bl sub_027EA0E0
|
|
ldr r1, _027EDD54 ; =0x00000FFF
|
|
add r0, r6, #1
|
|
and r1, r5, r1
|
|
strh r1, [r4, #0x16]
|
|
bl sub_027EAD50
|
|
add r7, r6, #2
|
|
strh r0, [r4, #0x18]
|
|
mov r5, #0
|
|
add r6, r4, #0x1a
|
|
b _027EDD00
|
|
_027EDCE0:
|
|
cmp r5, #0x20
|
|
bhs _027EDD0C
|
|
add r0, r7, r5
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
add r0, r6, r5
|
|
bl sub_027EAD24
|
|
add r5, r5, #1
|
|
_027EDD00:
|
|
ldrh r0, [r4, #0x18]
|
|
cmp r5, r0
|
|
blo _027EDCE0
|
|
_027EDD0C:
|
|
add r7, r4, #0x1a
|
|
mov r6, #0
|
|
b _027EDD28
|
|
_027EDD18:
|
|
mov r1, r6
|
|
add r0, r7, r5
|
|
bl sub_027EAD24
|
|
add r5, r5, #1
|
|
_027EDD28:
|
|
cmp r5, #0x20
|
|
blo _027EDD18
|
|
ldr r0, _027EDD50 ; =0x0380FFF4
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_037F8D58
|
|
mov r0, #1
|
|
_027EDD48:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EDD50: .word 0x0380FFF4
|
|
_027EDD54: .word 0x00000FFF
|
|
arm_func_end sub_027EDC60
|
|
|
|
arm_func_start sub_027EDD58
|
|
sub_027EDD58: ; 0x027EDD58
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r3, _027EDE40 ; =0x0380FFF4
|
|
mov r6, r1
|
|
ldr r1, [r3]
|
|
mov r7, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x3a
|
|
mov r5, r2
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
bne _027EDD94
|
|
mov r0, #1
|
|
bl sub_027EB06C
|
|
mov r0, #0
|
|
b _027EDE38
|
|
_027EDD94:
|
|
mov r0, #0x87
|
|
strh r0, [r4, #0xc]
|
|
mov r0, #0x15
|
|
strh r0, [r4, #0xe]
|
|
mov r1, r7
|
|
add r0, r4, #0x10
|
|
bl sub_027EA0E0
|
|
strh r6, [r4, #0x16]
|
|
add r0, r5, #1
|
|
bl sub_027EAD50
|
|
add r6, r5, #2
|
|
strh r0, [r4, #0x18]
|
|
mov r7, #0
|
|
add r5, r4, #0x1a
|
|
b _027EDDF0
|
|
_027EDDD0:
|
|
cmp r7, #0x20
|
|
bhs _027EDDFC
|
|
add r0, r6, r7
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
add r0, r5, r7
|
|
bl sub_027EAD24
|
|
add r7, r7, #1
|
|
_027EDDF0:
|
|
ldrh r0, [r4, #0x18]
|
|
cmp r7, r0
|
|
blo _027EDDD0
|
|
_027EDDFC:
|
|
add r6, r4, #0x1a
|
|
mov r5, #0
|
|
b _027EDE18
|
|
_027EDE08:
|
|
mov r1, r5
|
|
add r0, r6, r7
|
|
bl sub_027EAD24
|
|
add r7, r7, #1
|
|
_027EDE18:
|
|
cmp r7, #0x20
|
|
blo _027EDE08
|
|
ldr r0, _027EDE40 ; =0x0380FFF4
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_037F8D58
|
|
mov r0, #1
|
|
_027EDE38:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EDE40: .word 0x0380FFF4
|
|
arm_func_end sub_027EDD58
|
|
|
|
arm_func_start sub_027EDE44
|
|
sub_027EDE44: ; 0x027EDE44
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _027EDEBC ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r1, [r2]
|
|
mov r6, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x18
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
bne _027EDE7C
|
|
mov r0, #1
|
|
bl sub_027EB06C
|
|
mov r0, #0
|
|
b _027EDEB4
|
|
_027EDE7C:
|
|
mov r0, #0x88
|
|
strh r0, [r4, #0xc]
|
|
mov r2, #4
|
|
mov r1, r6
|
|
add r0, r4, #0x10
|
|
strh r2, [r4, #0xe]
|
|
bl sub_027EA0E0
|
|
ldr r0, _027EDEBC ; =0x0380FFF4
|
|
strh r5, [r4, #0x16]
|
|
ldr r0, [r0]
|
|
mov r1, r4
|
|
add r0, r0, #0x188
|
|
bl sub_037F8D58
|
|
mov r0, #1
|
|
_027EDEB4:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EDEBC: .word 0x0380FFF4
|
|
arm_func_end sub_027EDE44
|
|
|
|
arm_func_start sub_027EDEC0
|
|
sub_027EDEC0: ; 0x027EDEC0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _027EDF30 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
mov r1, #0x16
|
|
add r0, r0, #0x188
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
bne _027EDEF4
|
|
mov r0, #1
|
|
bl sub_027EB06C
|
|
mov r0, #0
|
|
b _027EDF28
|
|
_027EDEF4:
|
|
mov r0, #0x8b
|
|
strh r0, [r4, #0xc]
|
|
mov r2, #3
|
|
mov r1, r5
|
|
add r0, r4, #0x10
|
|
strh r2, [r4, #0xe]
|
|
bl sub_027EA0E0
|
|
ldr r0, _027EDF30 ; =0x0380FFF4
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_037F8D58
|
|
mov r0, #1
|
|
_027EDF28:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EDF30: .word 0x0380FFF4
|
|
arm_func_end sub_027EDEC0
|
|
|
|
arm_func_start sub_027EDF34
|
|
sub_027EDF34: ; 0x027EDF34
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027EDF90 ; =0x0380FFF4
|
|
mov r1, #0x10
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_037F886C
|
|
movs r1, r0
|
|
bne _027EDF64
|
|
mov r0, #1
|
|
bl sub_027EB06C
|
|
mov r0, #0
|
|
b _027EDF88
|
|
_027EDF64:
|
|
mov r0, #0x8c
|
|
strh r0, [r1, #0xc]
|
|
mov r2, #0
|
|
ldr r0, _027EDF90 ; =0x0380FFF4
|
|
strh r2, [r1, #0xe]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_037F8D58
|
|
mov r0, #1
|
|
_027EDF88:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EDF90: .word 0x0380FFF4
|
|
arm_func_end sub_027EDF34
|
|
|
|
arm_func_start sub_027EDF94
|
|
sub_027EDF94: ; 0x027EDF94
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _027EE0AC ; =0x0380FFF4
|
|
mov r6, r0
|
|
ldr r2, [r1]
|
|
add r0, r2, #0x300
|
|
ldrh r1, [r0, #0xe4]
|
|
add r0, r2, #0x188
|
|
add r1, r1, #0x3e
|
|
add r4, r2, #0x344
|
|
bl sub_037F886C
|
|
movs r5, r0
|
|
bne _027EDFD4
|
|
mov r0, #1
|
|
bl sub_027EB06C
|
|
mov r0, #0
|
|
b _027EE0A4
|
|
_027EDFD4:
|
|
mov r0, #0x8d
|
|
strh r0, [r5, #0xc]
|
|
ldrh r1, [r4, #0xa0]
|
|
add r0, r5, #0x1f
|
|
add r1, r1, #1
|
|
add r1, r1, r1, lsr #31
|
|
mov r1, r1, asr #1
|
|
add r1, r1, #0x16
|
|
strh r1, [r5, #0xe]
|
|
ldrh r1, [r6, #0x12]
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
ldrh r1, [r6, #0xe]
|
|
add r0, r5, #0x1e
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
add r0, r5, #0x2e
|
|
add r1, r6, #0x1e
|
|
bl sub_027EA0E0
|
|
ldrh r2, [r4, #0xa0]
|
|
strh r2, [r5, #0x16]
|
|
cmp r2, #0
|
|
beq _027EE08C
|
|
ldrh r0, [r4, #0xa2]
|
|
tst r0, #1
|
|
ldr r0, [r4, #0x9c]
|
|
beq _027EE080
|
|
add r7, r5, #0x3c
|
|
add r6, r0, #1
|
|
mov r4, #0
|
|
b _027EE070
|
|
_027EE050:
|
|
mov r0, r6
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
mov r0, r7
|
|
bl sub_027EAD24
|
|
add r6, r6, #1
|
|
add r7, r7, #1
|
|
add r4, r4, #1
|
|
_027EE070:
|
|
ldrh r0, [r5, #0x16]
|
|
cmp r4, r0
|
|
blo _027EE050
|
|
b _027EE08C
|
|
_027EE080:
|
|
add r1, r5, #0x3c
|
|
add r2, r2, #1
|
|
bl sub_037FDF9C
|
|
_027EE08C:
|
|
ldr r0, _027EE0AC ; =0x0380FFF4
|
|
mov r1, r5
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_037F8D58
|
|
mov r0, #1
|
|
_027EE0A4:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE0AC: .word 0x0380FFF4
|
|
arm_func_end sub_027EDF94
|
|
|
|
arm_func_start sub_027EE0B0
|
|
sub_027EE0B0: ; 0x027EE0B0
|
|
ldr r1, _027EE0D0 ; =0x0380FFF4
|
|
ldr ip, _027EE0D4 ; =sub_037FDF74
|
|
ldr r1, [r1]
|
|
mov r0, #0
|
|
add r1, r1, #4
|
|
mov r2, #0x20
|
|
add r1, r1, #0x400
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE0D0: .word 0x0380FFF4
|
|
_027EE0D4: .word sub_037FDF74
|
|
arm_func_end sub_027EE0B0
|
|
|
|
arm_func_start sub_027EE0D8
|
|
sub_027EE0D8: ; 0x027EE0D8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _027EE1C0 ; =0x0380FFF4
|
|
mov r5, r0
|
|
mov r0, #1
|
|
strh r0, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
bne _027EE1B8
|
|
add r0, r5, #0x10
|
|
bl sub_027E8E5C
|
|
mov r4, r0
|
|
ldrh r0, [r5, #0x16]
|
|
bl sub_027E8EBC
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x18]
|
|
bl sub_027E8EF0
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x1c]
|
|
bl sub_027E8F30
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x1e]
|
|
bl sub_027E8FB0
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x20]
|
|
bl sub_027E8FE4
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x22]
|
|
bl sub_027E9084
|
|
orr r4, r4, r0
|
|
add r0, r5, #0x24
|
|
bl sub_027E90A8
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x74]
|
|
bl sub_027E9108
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x76]
|
|
bl sub_027E9140
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x78]
|
|
bl sub_027E9178
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x7a]
|
|
mov r1, #0
|
|
bl sub_027E91B0
|
|
orr r4, r4, r0
|
|
add r0, r5, #0x7c
|
|
bl sub_027E9260
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x9c]
|
|
bl sub_027E9290
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x9e]
|
|
bl sub_027E9338
|
|
orr r0, r4, r0
|
|
_027EE1B8:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE1C0: .word 0x0380FFF4
|
|
arm_func_end sub_027EE0D8
|
|
|
|
arm_func_start sub_027EE1C4
|
|
sub_027EE1C4: ; 0x027EE1C4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EE200 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
bne _027EE1F4
|
|
add r0, r0, #0x10
|
|
bl sub_027E8E5C
|
|
mov r3, r0
|
|
_027EE1F4:
|
|
mov r0, r3
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE200: .word 0x0380FFF4
|
|
arm_func_end sub_027EE1C4
|
|
|
|
arm_func_start sub_027EE204
|
|
sub_027EE204: ; 0x027EE204
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _027EE218 ; =sub_027E8EBC
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE218: .word sub_027E8EBC
|
|
arm_func_end sub_027EE204
|
|
|
|
arm_func_start sub_027EE21C
|
|
sub_027EE21C: ; 0x027EE21C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EE258 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
bne _027EE24C
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_027E8EF0
|
|
mov r3, r0
|
|
_027EE24C:
|
|
mov r0, r3
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE258: .word 0x0380FFF4
|
|
arm_func_end sub_027EE21C
|
|
|
|
arm_func_start sub_027EE25C
|
|
sub_027EE25C: ; 0x027EE25C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EE2A8 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r2, [r1, #0x4c]
|
|
cmp r2, #0x20
|
|
movhi r0, r3
|
|
bhi _027EE2A0
|
|
bne _027EE298
|
|
ldrh r1, [r1, #0x56]
|
|
cmp r1, #0
|
|
movne r0, r3
|
|
bne _027EE2A0
|
|
_027EE298:
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_027E8F30
|
|
_027EE2A0:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE2A8: .word 0x0380FFF4
|
|
arm_func_end sub_027EE25C
|
|
|
|
arm_func_start sub_027EE2AC
|
|
sub_027EE2AC: ; 0x027EE2AC
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _027EE2C0 ; =sub_027E8FB0
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE2C0: .word sub_027E8FB0
|
|
arm_func_end sub_027EE2AC
|
|
|
|
arm_func_start sub_027EE2C4
|
|
sub_027EE2C4: ; 0x027EE2C4
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _027EE2D8 ; =sub_027E8FE4
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE2D8: .word sub_027E8FE4
|
|
arm_func_end sub_027EE2C4
|
|
|
|
arm_func_start sub_027EE2DC
|
|
sub_027EE2DC: ; 0x027EE2DC
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _027EE2F0 ; =sub_027E9084
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE2F0: .word sub_027E9084
|
|
arm_func_end sub_027EE2DC
|
|
|
|
arm_func_start sub_027EE2F4
|
|
sub_027EE2F4: ; 0x027EE2F4
|
|
ldr ip, _027EE308 ; =sub_027E90A8
|
|
mov r2, #1
|
|
add r0, r0, #0x10
|
|
strh r2, [r1, #2]
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE308: .word sub_027E90A8
|
|
arm_func_end sub_027EE2F4
|
|
|
|
arm_func_start sub_027EE30C
|
|
sub_027EE30C: ; 0x027EE30C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EE348 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x20
|
|
bhi _027EE33C
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_027E9108
|
|
mov r3, r0
|
|
_027EE33C:
|
|
mov r0, r3
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE348: .word 0x0380FFF4
|
|
arm_func_end sub_027EE30C
|
|
|
|
arm_func_start sub_027EE34C
|
|
sub_027EE34C: ; 0x027EE34C
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _027EE360 ; =sub_027E9140
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE360: .word sub_027E9140
|
|
arm_func_end sub_027EE34C
|
|
|
|
arm_func_start sub_027EE364
|
|
sub_027EE364: ; 0x027EE364
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _027EE378 ; =sub_027E9178
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE378: .word sub_027E9178
|
|
arm_func_end sub_027EE364
|
|
|
|
arm_func_start sub_027EE37C
|
|
sub_027EE37C: ; 0x027EE37C
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _027EE394 ; =sub_027E91B0
|
|
ldrh r0, [r0, #0x10]
|
|
mov r1, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE394: .word sub_027E91B0
|
|
arm_func_end sub_027EE37C
|
|
|
|
arm_func_start sub_027EE398
|
|
sub_027EE398: ; 0x027EE398
|
|
ldr ip, _027EE3AC ; =sub_027E9260
|
|
mov r2, #1
|
|
add r0, r0, #0x10
|
|
strh r2, [r1, #2]
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE3AC: .word sub_027E9260
|
|
arm_func_end sub_027EE398
|
|
|
|
arm_func_start sub_027EE3B0
|
|
sub_027EE3B0: ; 0x027EE3B0
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _027EE3C4 ; =sub_027E9290
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE3C4: .word sub_027E9290
|
|
arm_func_end sub_027EE3B0
|
|
|
|
arm_func_start sub_027EE3C8
|
|
sub_027EE3C8: ; 0x027EE3C8
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _027EE3DC ; =sub_027E9338
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE3DC: .word sub_027E9338
|
|
arm_func_end sub_027EE3C8
|
|
|
|
arm_func_start sub_027EE3E0
|
|
sub_027EE3E0: ; 0x027EE3E0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
mov r5, r0
|
|
ldrh r0, [r5, #0x14]
|
|
cmp r0, #0x3f
|
|
movhi r0, #5
|
|
bhi _027EE424
|
|
ldrh r0, [r5, #0x10]
|
|
ldrh r1, [r5, #0x12]
|
|
bl sub_027E935C
|
|
movs r4, r0
|
|
bne _027EE420
|
|
ldrh r1, [r5, #0x14]
|
|
mov r0, #0x2e
|
|
bl sub_027EA5F0
|
|
_027EE420:
|
|
mov r0, r4
|
|
_027EE424:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027EE3E0
|
|
|
|
arm_func_start sub_027EE42C
|
|
sub_027EE42C: ; 0x027EE42C
|
|
stmdb sp!, {r4, lr}
|
|
ldr ip, _027EE52C ; =0x0380FFF4
|
|
mov r3, #1
|
|
ldr r2, [ip]
|
|
ldr r2, [r2, #0x31c]
|
|
strh r3, [r1, #2]
|
|
ldr r1, [ip]
|
|
ldrh r4, [r0, #0x10]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x22]
|
|
cmp r4, r1
|
|
blo _027EE46C
|
|
rsb r1, r3, #0x10000
|
|
cmp r4, r1
|
|
movne r0, #5
|
|
bne _027EE524
|
|
_027EE46C:
|
|
ldrh r3, [r0, #0x14]
|
|
cmp r3, #0x3f
|
|
bls _027EE488
|
|
ldr r1, _027EE530 ; =0x0000FFFF
|
|
cmp r3, r1
|
|
movne r0, #5
|
|
bne _027EE524
|
|
_027EE488:
|
|
ldr r1, _027EE530 ; =0x0000FFFF
|
|
cmp r4, r1
|
|
bne _027EE4DC
|
|
ldr ip, _027EE52C ; =0x0380FFF4
|
|
mov r4, #1
|
|
mov r3, #0x1c
|
|
b _027EE4C4
|
|
_027EE4A4:
|
|
mla lr, r4, r3, r2
|
|
ldrh r1, [r0, #0x12]
|
|
add r4, r4, #1
|
|
strh r1, [lr, #0x1a]
|
|
ldrh r1, [lr, #0x18]
|
|
cmp r1, #0
|
|
ldrneh r1, [r0, #0x12]
|
|
strneh r1, [lr, #0x18]
|
|
_027EE4C4:
|
|
ldr r1, [ip]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x22]
|
|
cmp r4, r1
|
|
blo _027EE4A4
|
|
b _027EE510
|
|
_027EE4DC:
|
|
cmp r4, #0
|
|
beq _027EE510
|
|
mov r1, #0x1c
|
|
mla r3, r4, r1, r2
|
|
ldrh lr, [r0, #0x12]
|
|
add ip, r2, #0x18
|
|
strh lr, [r3, #0x1a]
|
|
ldrh r2, [r0, #0x10]
|
|
mul r3, r2, r1
|
|
ldrh r1, [ip, r3]
|
|
cmp r1, #0
|
|
ldrneh r1, [r0, #0x12]
|
|
strneh r1, [ip, r3]
|
|
_027EE510:
|
|
ldrh r0, [r0, #0x14]
|
|
cmp r0, #0
|
|
beq _027EE520
|
|
bl sub_027E9E30
|
|
_027EE520:
|
|
mov r0, #0
|
|
_027EE524:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE52C: .word 0x0380FFF4
|
|
_027EE530: .word 0x0000FFFF
|
|
arm_func_end sub_027EE42C
|
|
|
|
arm_func_start sub_027EE534
|
|
sub_027EE534: ; 0x027EE534
|
|
ldr r2, _027EE588 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x20
|
|
movhi r0, r3
|
|
bxhi lr
|
|
ldrh r1, [r0, #0x10]
|
|
add r1, r1, #1
|
|
strh r1, [r0, #0x10]
|
|
ldr r1, [r2]
|
|
ldrh r2, [r0, #0x10]
|
|
add r0, r1, #0x300
|
|
ldrh r1, [r0, #0x20]
|
|
cmp r2, r1
|
|
movhi r0, #5
|
|
strlsh r2, [r0, #0x22]
|
|
movls r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE588: .word 0x0380FFF4
|
|
arm_func_end sub_027EE534
|
|
|
|
arm_func_start sub_027EE58C
|
|
sub_027EE58C: ; 0x027EE58C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EE5C8 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
blo _027EE5BC
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_027E93A0
|
|
mov r3, r0
|
|
_027EE5BC:
|
|
mov r0, r3
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE5C8: .word 0x0380FFF4
|
|
arm_func_end sub_027EE58C
|
|
|
|
arm_func_start sub_027EE5CC
|
|
sub_027EE5CC: ; 0x027EE5CC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EE608 ; =0x0380FFF4
|
|
mov r3, r0
|
|
mov r0, #1
|
|
strh r0, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
blo _027EE600
|
|
ldrh r0, [r3, #0x10]
|
|
ldrh r1, [r3, #0x12]
|
|
bl sub_027E9408
|
|
_027EE600:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE608: .word 0x0380FFF4
|
|
arm_func_end sub_027EE5CC
|
|
|
|
arm_func_start sub_027EE60C
|
|
sub_027EE60C: ; 0x027EE60C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EE648 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
blo _027EE63C
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_027E94DC
|
|
mov r3, r0
|
|
_027EE63C:
|
|
mov r0, r3
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE648: .word 0x0380FFF4
|
|
arm_func_end sub_027EE60C
|
|
|
|
arm_func_start sub_027EE64C
|
|
sub_027EE64C: ; 0x027EE64C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EE688 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
blo _027EE67C
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_027E951C
|
|
mov r3, r0
|
|
_027EE67C:
|
|
mov r0, r3
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE688: .word 0x0380FFF4
|
|
arm_func_end sub_027EE64C
|
|
|
|
arm_func_start sub_027EE68C
|
|
sub_027EE68C: ; 0x027EE68C
|
|
ldr ip, _027EE6A0 ; =sub_027E956C
|
|
mov r2, #1
|
|
add r0, r0, #0x10
|
|
strh r2, [r1, #2]
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE6A0: .word sub_027E956C
|
|
arm_func_end sub_027EE68C
|
|
|
|
arm_func_start sub_027EE6A4
|
|
sub_027EE6A4: ; 0x027EE6A4
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
mov r1, r0
|
|
ldrh r0, [r1, #0x10]
|
|
ldr ip, _027EE6C0 ; =sub_027E95D0
|
|
add r1, r1, #0x12
|
|
bx ip
|
|
.align 2, 0
|
|
_027EE6C0: .word sub_027E95D0
|
|
arm_func_end sub_027EE6A4
|
|
|
|
arm_func_start sub_027EE6C4
|
|
sub_027EE6C4: ; 0x027EE6C4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EE6FC ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x2e]
|
|
cmp r1, #1
|
|
movne r0, #0xb
|
|
bne _027EE6F4
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_027E96E0
|
|
_027EE6F4:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE6FC: .word 0x0380FFF4
|
|
arm_func_end sub_027EE6C4
|
|
|
|
arm_func_start sub_027EE700
|
|
sub_027EE700: ; 0x027EE700
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EE738 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x2e]
|
|
cmp r1, #1
|
|
movne r0, #0xb
|
|
bne _027EE730
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_027E9738
|
|
_027EE730:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE738: .word 0x0380FFF4
|
|
arm_func_end sub_027EE700
|
|
|
|
arm_func_start sub_027EE73C
|
|
sub_027EE73C: ; 0x027EE73C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EE778 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x2e]
|
|
cmp r1, #2
|
|
cmpne r1, #3
|
|
movne r0, #0xb
|
|
bne _027EE770
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_027E977C
|
|
_027EE770:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE778: .word 0x0380FFF4
|
|
arm_func_end sub_027EE73C
|
|
|
|
arm_func_start sub_027EE77C
|
|
sub_027EE77C: ; 0x027EE77C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EE7DC ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
mov r3, r0
|
|
add r0, r1, #0x300
|
|
ldrh r0, [r0, #0x2e]
|
|
cmp r0, #1
|
|
movne r0, #0xb
|
|
bne _027EE7D4
|
|
ldrh r0, [r3, #0x10]
|
|
ldrh r2, [r3, #0xe]
|
|
add r1, r0, #1
|
|
add r1, r1, r1, lsr #31
|
|
mov r1, r1, asr #1
|
|
add r1, r1, #1
|
|
cmp r2, r1
|
|
movlt r0, #4
|
|
blt _027EE7D4
|
|
add r1, r3, #0x12
|
|
bl sub_027E9F54
|
|
_027EE7D4:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE7DC: .word 0x0380FFF4
|
|
arm_func_end sub_027EE77C
|
|
|
|
arm_func_start sub_027EE7E0
|
|
sub_027EE7E0: ; 0x027EE7E0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027EE914 ; =0x0380FFF4
|
|
mov r4, r1
|
|
mov r1, #0x21
|
|
strh r1, [r4, #2]
|
|
ldr r1, [r0]
|
|
add r0, r4, #6
|
|
add r1, r1, #0x324
|
|
bl sub_027EA0E0
|
|
ldr r0, _027EE914 ; =0x0380FFF4
|
|
add r1, r4, #0x22
|
|
ldr r3, [r0]
|
|
mov r2, #0x20
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x2a]
|
|
strh r3, [r4, #0xc]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x2c]
|
|
strh r3, [r4, #0xe]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0xbe]
|
|
strh r3, [r4, #0x10]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x2e]
|
|
strh r3, [r4, #0x12]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x30]
|
|
strh r3, [r4, #0x14]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x34]
|
|
strh r3, [r4, #0x16]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x36]
|
|
strh r3, [r4, #0x18]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x3a]
|
|
mov r3, r3, lsl #0x1f
|
|
mov r3, r3, lsr #0x1f
|
|
strh r3, [r4, #0x1a]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x3a]
|
|
mov r3, r3, lsl #0x1e
|
|
mov r3, r3, lsr #0x1f
|
|
strh r3, [r4, #0x1c]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0xc2]
|
|
strh r3, [r4, #0x1e]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x3c]
|
|
strh r3, [r4, #0x20]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x384
|
|
bl sub_037FDF9C
|
|
ldr r2, _027EE914 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x3a]
|
|
mov r1, r1, lsl #0x1d
|
|
mov r1, r1, lsr #0x1f
|
|
strh r1, [r4, #0x42]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x32]
|
|
strh r1, [r4, #0x44]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE914: .word 0x0380FFF4
|
|
arm_func_end sub_027EE7E0
|
|
|
|
arm_func_start sub_027EE918
|
|
sub_027EE918: ; 0x027EE918
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027EE944 ; =0x0380FFF4
|
|
mov r2, #4
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
add r0, r1, #6
|
|
add r1, r2, #0x324
|
|
bl sub_027EA0E0
|
|
mov r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE944: .word 0x0380FFF4
|
|
arm_func_end sub_027EE918
|
|
|
|
arm_func_start sub_027EE948
|
|
sub_027EE948: ; 0x027EE948
|
|
ldr r0, _027EE96C ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x2a]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE96C: .word 0x0380FFF4
|
|
arm_func_end sub_027EE948
|
|
|
|
arm_func_start sub_027EE970
|
|
sub_027EE970: ; 0x027EE970
|
|
ldr r3, _027EE9A4 ; =0x0380FFF4
|
|
mov r0, #3
|
|
strh r0, [r1, #2]
|
|
ldr r2, [r3]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x2c]
|
|
strh r2, [r1, #6]
|
|
ldr r2, [r3]
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0xbe]
|
|
strh r2, [r1, #8]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE9A4: .word 0x0380FFF4
|
|
arm_func_end sub_027EE970
|
|
|
|
arm_func_start sub_027EE9A8
|
|
sub_027EE9A8: ; 0x027EE9A8
|
|
ldr r0, _027EE9CC ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x2e]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE9CC: .word 0x0380FFF4
|
|
arm_func_end sub_027EE9A8
|
|
|
|
arm_func_start sub_027EE9D0
|
|
sub_027EE9D0: ; 0x027EE9D0
|
|
ldr r0, _027EE9F4 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x30]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EE9F4: .word 0x0380FFF4
|
|
arm_func_end sub_027EE9D0
|
|
|
|
arm_func_start sub_027EE9F8
|
|
sub_027EE9F8: ; 0x027EE9F8
|
|
ldr r0, _027EEA1C ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x34]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEA1C: .word 0x0380FFF4
|
|
arm_func_end sub_027EE9F8
|
|
|
|
arm_func_start sub_027EEA20
|
|
sub_027EEA20: ; 0x027EEA20
|
|
ldr r0, _027EEA44 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x36]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEA44: .word 0x0380FFF4
|
|
arm_func_end sub_027EEA20
|
|
|
|
arm_func_start sub_027EEA48
|
|
sub_027EEA48: ; 0x027EEA48
|
|
ldr r0, _027EEA74 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x3a]
|
|
mov r2, r2, lsl #0x1f
|
|
mov r2, r2, lsr #0x1f
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEA74: .word 0x0380FFF4
|
|
arm_func_end sub_027EEA48
|
|
|
|
arm_func_start sub_027EEA78
|
|
sub_027EEA78: ; 0x027EEA78
|
|
ldr r0, _027EEAA4 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x3a]
|
|
mov r2, r2, lsl #0x1e
|
|
mov r2, r2, lsr #0x1f
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEAA4: .word 0x0380FFF4
|
|
arm_func_end sub_027EEA78
|
|
|
|
arm_func_start sub_027EEAA8
|
|
sub_027EEAA8: ; 0x027EEAA8
|
|
ldr r0, _027EEACC ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0xc2]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEACC: .word 0x0380FFF4
|
|
arm_func_end sub_027EEAA8
|
|
|
|
arm_func_start sub_027EEAD0
|
|
sub_027EEAD0: ; 0x027EEAD0
|
|
ldr r0, _027EEAF4 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x3c]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEAF4: .word 0x0380FFF4
|
|
arm_func_end sub_027EEAD0
|
|
|
|
arm_func_start sub_027EEAF8
|
|
sub_027EEAF8: ; 0x027EEAF8
|
|
ldr r0, _027EEB30 ; =0x0380FFF4
|
|
mov r2, #0x11
|
|
strh r2, [r1, #2]
|
|
ldr r0, [r0]
|
|
add r3, r1, #6
|
|
add r2, r0, #0x384
|
|
mov r1, #0
|
|
_027EEB14:
|
|
ldrh r0, [r2], #2
|
|
add r1, r1, #1
|
|
cmp r1, #0x10
|
|
strh r0, [r3], #2
|
|
blo _027EEB14
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEB30: .word 0x0380FFF4
|
|
arm_func_end sub_027EEAF8
|
|
|
|
arm_func_start sub_027EEB34
|
|
sub_027EEB34: ; 0x027EEB34
|
|
ldr r0, _027EEB60 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x3a]
|
|
mov r2, r2, lsl #0x1d
|
|
mov r2, r2, lsr #0x1f
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEB60: .word 0x0380FFF4
|
|
arm_func_end sub_027EEB34
|
|
|
|
arm_func_start sub_027EEB64
|
|
sub_027EEB64: ; 0x027EEB64
|
|
ldr r0, _027EEB88 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x32]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEB88: .word 0x0380FFF4
|
|
arm_func_end sub_027EEB64
|
|
|
|
arm_func_start sub_027EEB8C
|
|
sub_027EEB8C: ; 0x027EEB8C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r1
|
|
mov r0, #4
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x13
|
|
bl sub_027EA5C4
|
|
strh r0, [r4, #6]
|
|
mov r0, #0x35
|
|
bl sub_027EA5C4
|
|
strh r0, [r4, #8]
|
|
mov r0, #0x2e
|
|
bl sub_027EA5C4
|
|
strh r0, [r4, #0xa]
|
|
mov r0, #0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027EEB8C
|
|
|
|
arm_func_start sub_027EEBCC
|
|
sub_027EEBCC: ; 0x027EEBCC
|
|
ldr r0, _027EEBF4 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x22]
|
|
sub r2, r2, #1
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEBF4: .word 0x0380FFF4
|
|
arm_func_end sub_027EEBCC
|
|
|
|
arm_func_start sub_027EEBF8
|
|
sub_027EEBF8: ; 0x027EEBF8
|
|
ldr r0, _027EEC30 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r2, [r0, #0x4c]
|
|
cmp r2, #0x10
|
|
movlo r0, #1
|
|
ldrhsh r2, [r0, #0x3a]
|
|
movhs r0, #0
|
|
movhs r2, r2, lsl #0x1c
|
|
movhs r2, r2, lsr #0x1f
|
|
strhsh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEC30: .word 0x0380FFF4
|
|
arm_func_end sub_027EEBF8
|
|
|
|
arm_func_start sub_027EEC34
|
|
sub_027EEC34: ; 0x027EEC34
|
|
ldr r3, _027EEC90 ; =0x0380FFF4
|
|
mov r0, #3
|
|
strh r0, [r1, #2]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x300
|
|
ldrh r2, [r0, #0x4c]
|
|
cmp r2, #0x10
|
|
movlo r0, #1
|
|
bxlo lr
|
|
ldrh r2, [r0, #0x3a]
|
|
mov r0, #0
|
|
mov r2, r2, lsl #0x1b
|
|
mov r2, r2, lsr #0x1f
|
|
strh r2, [r1, #6]
|
|
ldr r2, [r3]
|
|
add r2, r2, #0x300
|
|
ldrh r3, [r2, #0x3a]
|
|
mov r2, r3, lsl #0x1c
|
|
mov r3, r3, lsl #0x1a
|
|
mov r2, r2, lsr #0x1f
|
|
eor r2, r2, r3, lsr #31
|
|
strh r2, [r1, #8]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEC90: .word 0x0380FFF4
|
|
arm_func_end sub_027EEC34
|
|
|
|
arm_func_start sub_027EEC94
|
|
sub_027EEC94: ; 0x027EEC94
|
|
ldr r0, _027EECCC ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r2, [r0, #0x4c]
|
|
cmp r2, #0x10
|
|
movlo r0, #1
|
|
ldrhsh r2, [r0, #0x3a]
|
|
movhs r0, #0
|
|
movhs r2, r2, lsl #0x19
|
|
movhs r2, r2, lsr #0x1f
|
|
strhsh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EECCC: .word 0x0380FFF4
|
|
arm_func_end sub_027EEC94
|
|
|
|
arm_func_start sub_027EECD0
|
|
sub_027EECD0: ; 0x027EECD0
|
|
ldr r0, _027EED08 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r2, [r0, #0x4c]
|
|
cmp r2, #0x10
|
|
movlo r0, #1
|
|
ldrhsh r2, [r0, #0x3a]
|
|
movhs r0, #0
|
|
movhs r2, r2, lsl #0x18
|
|
movhs r2, r2, lsr #0x1f
|
|
strhsh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EED08: .word 0x0380FFF4
|
|
arm_func_end sub_027EECD0
|
|
|
|
arm_func_start sub_027EED0C
|
|
sub_027EED0C: ; 0x027EED0C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027EED38 ; =0x0380FFF4
|
|
mov r2, #4
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
add r0, r1, #6
|
|
add r1, r2, #0x3a8
|
|
bl sub_027EA0E0
|
|
mov r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EED38: .word 0x0380FFF4
|
|
arm_func_end sub_027EED0C
|
|
|
|
arm_func_start sub_027EED3C
|
|
sub_027EED3C: ; 0x027EED3C
|
|
ldr r2, _027EED84 ; =0x0380FFF4
|
|
mov r0, #0x12
|
|
strh r0, [r1, #2]
|
|
ldr r0, [r2]
|
|
add ip, r1, #8
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x62]
|
|
mov r3, #0
|
|
strh r0, [r1, #6]
|
|
ldr r0, [r2]
|
|
add r1, r0, #0x364
|
|
_027EED68:
|
|
ldrh r0, [r1], #2
|
|
add r3, r3, #2
|
|
cmp r3, #0x20
|
|
strh r0, [ip], #2
|
|
blo _027EED68
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027EED84: .word 0x0380FFF4
|
|
arm_func_end sub_027EED3C
|
|
|
|
arm_func_start sub_027EED88
|
|
sub_027EED88: ; 0x027EED88
|
|
ldr r0, _027EEDAC ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0xb2]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEDAC: .word 0x0380FFF4
|
|
arm_func_end sub_027EED88
|
|
|
|
arm_func_start sub_027EEDB0
|
|
sub_027EEDB0: ; 0x027EEDB0
|
|
ldr r0, _027EEDD4 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0xb8]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEDD4: .word 0x0380FFF4
|
|
arm_func_end sub_027EEDB0
|
|
|
|
arm_func_start sub_027EEDD8
|
|
sub_027EEDD8: ; 0x027EEDD8
|
|
ldr r0, _027EEDFC ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0xb4]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEDFC: .word 0x0380FFF4
|
|
arm_func_end sub_027EEDD8
|
|
|
|
arm_func_start sub_027EEE00
|
|
sub_027EEE00: ; 0x027EEE00
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r4, r1
|
|
ldrh r0, [r4, #2]
|
|
ldr r1, _027EEED4 ; =0x0380FFF4
|
|
cmp r0, #1
|
|
ldrhi r0, _027EEED4 ; =0x0380FFF4
|
|
ldrhi r0, [r0]
|
|
addhi r0, r0, #0x300
|
|
ldrhih r0, [r0, #0xe4]
|
|
strhih r0, [r4, #6]
|
|
ldrh r0, [r4, #2]
|
|
ldr r3, [r1]
|
|
sub r1, r0, #2
|
|
add r0, r3, #0x300
|
|
ldrh r2, [r0, #0xe4]
|
|
cmp r2, r1, lsl #1
|
|
movgt r0, #4
|
|
bgt _027EEECC
|
|
ldrh r2, [r4, #6]
|
|
cmp r2, #0
|
|
beq _027EEEB0
|
|
ldrh r0, [r0, #0xe6]
|
|
tst r0, #1
|
|
ldr r0, [r3, #0x3e0]
|
|
beq _027EEEA4
|
|
add r6, r4, #8
|
|
add r5, r0, #1
|
|
mov r7, #0
|
|
b _027EEE94
|
|
_027EEE74:
|
|
mov r0, r5
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
mov r0, r6
|
|
bl sub_027EAD24
|
|
add r6, r6, #1
|
|
add r5, r5, #1
|
|
add r7, r7, #1
|
|
_027EEE94:
|
|
ldrh r0, [r4, #6]
|
|
cmp r7, r0
|
|
blo _027EEE74
|
|
b _027EEEB0
|
|
_027EEEA4:
|
|
add r1, r4, #8
|
|
add r2, r2, #1
|
|
bl sub_037FDF9C
|
|
_027EEEB0:
|
|
ldrh r1, [r4, #6]
|
|
mov r0, #0
|
|
add r1, r1, #1
|
|
add r1, r1, r1, lsr #31
|
|
mov r1, r1, asr #1
|
|
add r1, r1, #2
|
|
strh r1, [r4, #2]
|
|
_027EEECC:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEED4: .word 0x0380FFF4
|
|
arm_func_end sub_027EEE00
|
|
|
|
arm_func_start sub_027EEED8
|
|
sub_027EEED8: ; 0x027EEED8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EEF14 ; =0x0380FFF4
|
|
mov r0, #1
|
|
strh r0, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0
|
|
cmpne r1, #0x10
|
|
bne _027EEF0C
|
|
mov r0, #0
|
|
bl sub_037F9238
|
|
mov r0, #0
|
|
_027EEF0C:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEF14: .word 0x0380FFF4
|
|
arm_func_end sub_027EEED8
|
|
|
|
arm_func_start sub_027EEF18
|
|
sub_027EEF18: ; 0x027EEF18
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027EEF70 ; =0x0380FFF4
|
|
mov r0, #1
|
|
strh r0, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r2, [r1, #0x4c]
|
|
cmp r2, #0x20
|
|
bhi _027EEF68
|
|
ldrh r1, [r1, #0x56]
|
|
cmp r1, #0
|
|
bne _027EEF68
|
|
mov r0, #0
|
|
bl sub_027F4D2C
|
|
cmp r0, #0
|
|
movne r0, #0xe
|
|
bne _027EEF68
|
|
mov r0, #0x10
|
|
bl sub_037F9238
|
|
mov r0, #0
|
|
_027EEF68:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEF70: .word 0x0380FFF4
|
|
arm_func_end sub_027EEF18
|
|
|
|
arm_func_start sub_027EEF74
|
|
sub_027EEF74: ; 0x027EEF74
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027EEFC4 ; =0x0380FFF4
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x4c]
|
|
cmp r1, #0x10
|
|
beq _027EEFA8
|
|
cmp r1, #0x20
|
|
ldreqh r0, [r0, #0x56]
|
|
cmpeq r0, #0
|
|
bne _027EEFB8
|
|
_027EEFA8:
|
|
mov r0, #0x20
|
|
bl sub_037F9238
|
|
mov r0, #0
|
|
b _027EEFBC
|
|
_027EEFB8:
|
|
mov r0, #1
|
|
_027EEFBC:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EEFC4: .word 0x0380FFF4
|
|
arm_func_end sub_027EEF74
|
|
|
|
arm_func_start sub_027EEFC8
|
|
sub_027EEFC8: ; 0x027EEFC8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027EF000 ; =0x0380FFF4
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0x20
|
|
blo _027EEFF0
|
|
bl sub_037F9198
|
|
_027EEFF0:
|
|
bl sub_027E8994
|
|
mov r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EF000: .word 0x0380FFF4
|
|
arm_func_end sub_027EEFC8
|
|
|
|
arm_func_start sub_027EF004
|
|
sub_027EF004: ; 0x027EF004
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027EF038 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0
|
|
mov r0, #1
|
|
beq _027EF030
|
|
strh r0, [r1, #2]
|
|
bl sub_027EA17C
|
|
mov r0, #0
|
|
_027EF030:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EF038: .word 0x0380FFF4
|
|
arm_func_end sub_027EF004
|
|
|
|
arm_func_start sub_027EF03C
|
|
sub_027EF03C: ; 0x027EF03C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027EF0D0 ; =0x027F7868
|
|
mov r4, r1
|
|
mov r3, #9
|
|
add r1, r4, #6
|
|
mov r2, #8
|
|
strh r3, [r4, #2]
|
|
bl sub_037FDF9C
|
|
ldr r1, _027EF0D4 ; =0x04808000
|
|
ldr r0, _027EF0D8 ; =0x0380FFF4
|
|
ldrh r1, [r1]
|
|
strh r1, [r4, #0xe]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #0x8000
|
|
moveq r1, #0x6d
|
|
ldreq r0, _027EF0DC ; =0x0000933D
|
|
streqh r1, [r4, #0x10]
|
|
beq _027EF09C
|
|
mov r0, #0
|
|
bl sub_027EA5C4
|
|
strh r0, [r4, #0x10]
|
|
bl sub_027EA640
|
|
_027EF09C:
|
|
strh r0, [r4, #0x12]
|
|
ldr r0, _027EF0D8 ; =0x0380FFF4
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #0x4000
|
|
addne r0, r1, #0x500
|
|
ldrneh r0, [r0, #0xf8]
|
|
moveq r0, #2
|
|
strh r0, [r4, #0x14]
|
|
mov r0, #0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EF0D0: .word 0x027F7868
|
|
_027EF0D4: .word 0x04808000
|
|
_027EF0D8: .word 0x0380FFF4
|
|
_027EF0DC: .word 0x0000933D
|
|
arm_func_end sub_027EF03C
|
|
|
|
arm_func_start sub_027EF0E0
|
|
sub_027EF0E0: ; 0x027EF0E0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027EF138 ; =0x0380FFF4
|
|
mov r4, r1
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
beq _027EF130
|
|
mov r0, #0x5c
|
|
strh r0, [r4, #2]
|
|
bl sub_027EA1AC
|
|
ldr r0, _027EF138 ; =0x0380FFF4
|
|
add r1, r4, #8
|
|
ldr r0, [r0]
|
|
mov r2, #0xb4
|
|
add r0, r0, #0x13c
|
|
add r0, r0, #0x400
|
|
bl sub_037FDFEC
|
|
mov r0, #0
|
|
_027EF130:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EF138: .word 0x0380FFF4
|
|
arm_func_end sub_027EF0E0
|
|
|
|
arm_func_start sub_027EF13C
|
|
sub_027EF13C: ; 0x027EF13C
|
|
ldr r0, _027EF160 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x4c]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EF160: .word 0x0380FFF4
|
|
arm_func_end sub_027EF13C
|
|
|
|
arm_func_start sub_027EF164
|
|
sub_027EF164: ; 0x027EF164
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #4
|
|
ldr r2, _027EF48C ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r2, [r2]
|
|
mov r0, #1
|
|
strh r0, [r1, #2]
|
|
add r4, r2, #0x344
|
|
ldrh r1, [r4, #8]
|
|
and r1, r1, #0xf0
|
|
cmp r1, #0x10
|
|
bne _027EF480
|
|
ldrh r0, [r5, #0x10]
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bhi _027EF480
|
|
ldrh r0, [r5, #0x14]
|
|
cmp r0, #0xa
|
|
cmpne r0, #0x14
|
|
movne r0, #5
|
|
bne _027EF480
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r0, #4
|
|
movhi r0, #5
|
|
bhi _027EF480
|
|
mov r0, #0
|
|
bl sub_027F4D2C
|
|
cmp r0, #0
|
|
movne r0, #0xe
|
|
bne _027EF480
|
|
ldrh r0, [r5, #0x10]
|
|
cmp r0, #0
|
|
beq _027EF3F4
|
|
cmp r0, #1
|
|
bne _027EF47C
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x10
|
|
movne r0, #1
|
|
bne _027EF480
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r2, sp, #0
|
|
mov r0, #0x65
|
|
mov r1, #1
|
|
bl sub_027F4E70
|
|
ldr r6, [sp]
|
|
mov r0, #1
|
|
bl sub_027EA5C4
|
|
cmp r6, r0
|
|
beq _027EF240
|
|
mov r1, r6
|
|
mov r0, #1
|
|
bl sub_027EA5F0
|
|
ldr r0, _027EF490 ; =0x00001388
|
|
bl sub_027EA9A8
|
|
_027EF240:
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r0, #4
|
|
addls pc, pc, r0, lsl #2
|
|
b _027EF47C
|
|
_027EF250: ; jump table
|
|
b _027EF264 ; case 0
|
|
b _027EF264 ; case 1
|
|
b _027EF264 ; case 2
|
|
b _027EF2FC ; case 3
|
|
b _027EF2FC ; case 4
|
|
_027EF264:
|
|
mov r0, #0x11
|
|
strh r0, [r4, #8]
|
|
ldrh r0, [r5, #0x16]
|
|
mov r1, #1
|
|
bl sub_027E9900
|
|
ldr r1, _027EF494 ; =0x04808040
|
|
mov r2, #0x8000
|
|
ldr r0, _027EF498 ; =0x000005DC
|
|
strh r2, [r1]
|
|
bl sub_027EA9A8
|
|
ldrh r1, [r5, #0x14]
|
|
mov r0, #2
|
|
strh r1, [r4, #0x16]
|
|
bl sub_027EA5C4
|
|
str r0, [sp]
|
|
ldrh r1, [r5, #0x12]
|
|
ldr r2, _027EF49C ; =0x048081A4
|
|
cmp r1, #1
|
|
orrls r0, r0, #0x10
|
|
strls r0, [sp]
|
|
ldrh r0, [r5, #0x14]
|
|
strh r0, [r2]
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r0, #1
|
|
strneh r0, [r2, #-2]
|
|
bne _027EF2E0
|
|
ldr r1, [sp]
|
|
mov r0, #3
|
|
orr r1, r1, #0x20
|
|
str r1, [sp]
|
|
strh r0, [r2, #-2]
|
|
_027EF2E0:
|
|
ldr r1, [sp]
|
|
mov r0, #2
|
|
bl sub_027EA5F0
|
|
ldr r1, _027EF4A0 ; =0x00000823
|
|
ldr r0, _027EF4A4 ; =0x048081A0
|
|
strh r1, [r0]
|
|
b _027EF47C
|
|
_027EF2FC:
|
|
ldr r0, _027EF48C ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r4, r0, #0x344
|
|
bl sub_037F8DE0
|
|
bl sub_037F9198
|
|
mov r0, #6
|
|
bl sub_027EA5C4
|
|
strh r0, [r4, #0xac]
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r0, #4
|
|
bne _027EF334
|
|
mov r0, #6
|
|
mov r1, #0
|
|
bl sub_027EA5F0
|
|
_027EF334:
|
|
ldr r1, _027EF4A8 ; =0x04804000
|
|
mov r0, #0
|
|
mov r2, #0xc
|
|
bl sub_037FDF74
|
|
ldr r1, _027EF4A8 ; =0x04804000
|
|
mov r0, #0x14
|
|
strh r0, [r1, #8]
|
|
mov r0, #0x7d0
|
|
strh r0, [r1, #0xa]
|
|
add r3, r1, #0xc
|
|
ldr r1, _027EF4AC ; =0x00005555
|
|
ldr r0, _027EF4B0 ; =0x000007EC
|
|
mov r2, #0
|
|
_027EF368:
|
|
add r2, r2, #2
|
|
cmp r2, r0
|
|
strh r1, [r3], #2
|
|
blo _027EF368
|
|
ldr r1, _027EF4A8 ; =0x04804000
|
|
mov r2, #8
|
|
ldr r0, _027EF4B4 ; =0x04808194
|
|
strh r2, [r1, #0xc]
|
|
mov r1, #6
|
|
strh r1, [r0]
|
|
mov r0, #0x12
|
|
strh r0, [r4, #8]
|
|
mov r1, #1
|
|
strh r1, [r4, #0x18]
|
|
ldrh r0, [r5, #0x16]
|
|
bl sub_027E9900
|
|
ldr r1, _027EF494 ; =0x04808040
|
|
mov r2, #0x8000
|
|
ldr r0, _027EF498 ; =0x000005DC
|
|
strh r2, [r1]
|
|
bl sub_027EA9A8
|
|
mov r2, #1
|
|
ldr r3, _027EF4B8 ; =0x04808012
|
|
mov r0, #2
|
|
strh r0, [r3]
|
|
strh r2, [r3, #-0xe]
|
|
ldr r1, _027EF4A8 ; =0x04804000
|
|
rsb r0, r2, #0x4000
|
|
and r0, r1, r0
|
|
mov r0, r0, lsl #0xf
|
|
mov r0, r0, lsr #0x10
|
|
strh r2, [r3, #0x9c]
|
|
orr r0, r0, #0x8000
|
|
strh r0, [r3, #0x8e]
|
|
b _027EF47C
|
|
_027EF3F4:
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x11
|
|
bne _027EF43C
|
|
bl sub_027EAA4C
|
|
ldr r1, _027EF4A4 ; =0x048081A0
|
|
mov r2, #0
|
|
strh r2, [r1]
|
|
mov r0, #1
|
|
strh r0, [r1, #2]
|
|
sub r0, r1, #0x160
|
|
strh r2, [r0]
|
|
mov r0, #2
|
|
bl sub_027EA5C4
|
|
bic r1, r0, #0x30
|
|
mov r0, #2
|
|
str r1, [sp]
|
|
bl sub_027EA5F0
|
|
b _027EF474
|
|
_027EF43C:
|
|
cmp r0, #0x12
|
|
bne _027EF46C
|
|
ldr r1, _027EF4BC ; =0x04808004
|
|
mov r0, #0
|
|
strh r0, [r4, #0x18]
|
|
_027EF450:
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _027EF450
|
|
ldrh r1, [r4, #0xac]
|
|
mov r0, #6
|
|
bl sub_027EA5F0
|
|
b _027EF474
|
|
_027EF46C:
|
|
mov r0, #1
|
|
b _027EF480
|
|
_027EF474:
|
|
mov r0, #0x10
|
|
strh r0, [r4, #8]
|
|
_027EF47C:
|
|
mov r0, #0
|
|
_027EF480:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EF48C: .word 0x0380FFF4
|
|
_027EF490: .word 0x00001388
|
|
_027EF494: .word 0x04808040
|
|
_027EF498: .word 0x000005DC
|
|
_027EF49C: .word 0x048081A4
|
|
_027EF4A0: .word 0x00000823
|
|
_027EF4A4: .word 0x048081A0
|
|
_027EF4A8: .word 0x04804000
|
|
_027EF4AC: .word 0x00005555
|
|
_027EF4B0: .word 0x000007EC
|
|
_027EF4B4: .word 0x04808194
|
|
_027EF4B8: .word 0x04808012
|
|
_027EF4BC: .word 0x04808004
|
|
arm_func_end sub_027EF164
|
|
|
|
arm_func_start sub_027EF4C0
|
|
sub_027EF4C0: ; 0x027EF4C0
|
|
ldr r0, _027EF52C ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x5c]
|
|
cmp r0, #0
|
|
beq _027EF4FC
|
|
ldr r0, _027EF530 ; =0x04804000
|
|
mov r2, #0
|
|
strh r2, [r0]
|
|
ldr r1, _027EF534 ; =0x048080A0
|
|
strh r2, [r0, #4]
|
|
ldrh r0, [r1]
|
|
orr r0, r0, #0x8000
|
|
strh r0, [r1]
|
|
bx lr
|
|
_027EF4FC:
|
|
ldr r2, _027EF538 ; =0x048080AC
|
|
mov r3, #1
|
|
strh r3, [r2]
|
|
mov r1, #0
|
|
strh r1, [r2, #-0xa8]
|
|
mov r0, #2
|
|
strh r0, [r2, #-0x9a]
|
|
rsb r0, r3, #0x10000
|
|
strh r0, [r2, #-0x9c]
|
|
strh r1, [r2, #0xe8]
|
|
strh r1, [r2, #-0x6c]
|
|
bx lr
|
|
.align 2, 0
|
|
_027EF52C: .word 0x0380FFF4
|
|
_027EF530: .word 0x04804000
|
|
_027EF534: .word 0x048080A0
|
|
_027EF538: .word 0x048080AC
|
|
arm_func_end sub_027EF4C0
|
|
|
|
arm_func_start sub_027EF53C
|
|
sub_027EF53C: ; 0x027EF53C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _027EF5E8 ; =0x0380FFF4
|
|
mov r3, #1
|
|
ldr r2, [r2]
|
|
strh r3, [r1, #2]
|
|
add r4, r2, #0x344
|
|
ldrh r2, [r4, #8]
|
|
and r1, r2, #0xf0
|
|
cmp r1, #0x10
|
|
movne r0, r3
|
|
bne _027EF5E0
|
|
ldrh r1, [r0, #0x10]
|
|
cmp r1, #0
|
|
beq _027EF5B4
|
|
cmp r1, #1
|
|
bne _027EF5DC
|
|
cmp r2, #0x10
|
|
movne r0, r3
|
|
bne _027EF5E0
|
|
ldrh r0, [r0, #0x12]
|
|
mov r1, r3
|
|
bl sub_027E9900
|
|
mov r0, #0
|
|
strh r0, [r4, #0xc]
|
|
bl sub_037F8DE0
|
|
mov r0, #0x8000
|
|
bl sub_027E9CE0
|
|
mov r0, #0x11
|
|
strh r0, [r4, #8]
|
|
b _027EF5DC
|
|
_027EF5B4:
|
|
cmp r2, #0x11
|
|
bne _027EF5CC
|
|
mov r0, #0
|
|
bl sub_027E9CE0
|
|
bl sub_037F9198
|
|
b _027EF5D4
|
|
_027EF5CC:
|
|
mov r0, r3
|
|
b _027EF5E0
|
|
_027EF5D4:
|
|
mov r0, #0x10
|
|
strh r0, [r4, #8]
|
|
_027EF5DC:
|
|
mov r0, #0
|
|
_027EF5E0:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EF5E8: .word 0x0380FFF4
|
|
arm_func_end sub_027EF53C
|
|
|
|
arm_func_start sub_027EF5EC
|
|
sub_027EF5EC: ; 0x027EF5EC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r1, _027EF7B0 ; =0x0380FFF4
|
|
mov r8, r0
|
|
ldr r4, [r1]
|
|
ldrh r1, [r8, #0x16]
|
|
ldr r0, _027EF7B4 ; =0x000005E4
|
|
add r5, r4, #0x344
|
|
cmp r1, r0
|
|
add r6, r4, #0x31c
|
|
movhi r0, #5
|
|
bhi _027EF7A8
|
|
ldrh r0, [r6, #0x12]
|
|
cmp r0, #1
|
|
bne _027EF64C
|
|
add r0, r8, #0x28
|
|
bl sub_027EB900
|
|
mov r7, r0
|
|
cmp r7, #0xff
|
|
beq _027EF644
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x40
|
|
beq _027EF650
|
|
_027EF644:
|
|
mov r0, #0xa
|
|
b _027EF7A8
|
|
_027EF64C:
|
|
ldrh r7, [r5, #0x88]
|
|
_027EF650:
|
|
ldr r0, _027EF7B0 ; =0x0380FFF4
|
|
strh r7, [r8, #0x12]
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x3ec]
|
|
strh r0, [r8, #0x14]
|
|
ldrh r0, [r8, #0x1e]
|
|
tst r0, #0xff
|
|
strneh r0, [r8, #0x20]
|
|
movne r0, #0
|
|
strneh r0, [r8, #0x1e]
|
|
bne _027EF688
|
|
mov r0, r7
|
|
bl sub_027EC0A0
|
|
strh r0, [r8, #0x20]
|
|
_027EF688:
|
|
ldrh r0, [r8, #0x16]
|
|
cmp r0, #0
|
|
bne _027EF6B0
|
|
ldrh r1, [r5, #0x8a]
|
|
mov r0, #0x1c
|
|
orr r1, r1, #0x40
|
|
bic r1, r1, #0x4000
|
|
strh r1, [r8, #0x24]
|
|
strh r0, [r8, #0x22]
|
|
b _027EF6D4
|
|
_027EF6B0:
|
|
ldrh r0, [r5, #0x8a]
|
|
strh r0, [r8, #0x24]
|
|
ldrh r0, [r6, #0x18]
|
|
cmp r0, #0
|
|
ldrh r0, [r8, #0x16]
|
|
addeq r0, r0, #0x1c
|
|
streqh r0, [r8, #0x22]
|
|
addne r0, r0, #0x24
|
|
strneh r0, [r8, #0x22]
|
|
_027EF6D4:
|
|
ldrh r0, [r6, #0x12]
|
|
cmp r0, #1
|
|
beq _027EF6F0
|
|
cmp r0, #2
|
|
cmpne r0, #3
|
|
beq _027EF76C
|
|
b _027EF7A4
|
|
_027EF6F0:
|
|
add r0, r8, #0x34
|
|
add r1, r8, #0x2e
|
|
bl sub_027EA0E0
|
|
add r0, r8, #0x2e
|
|
add r1, r5, #0x64
|
|
bl sub_027EA0E0
|
|
cmp r7, #0
|
|
bne _027EF748
|
|
mov r1, r8
|
|
add r0, r4, #0x200
|
|
bl sub_027EBAE8
|
|
ldr r0, _027EF7B0 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0x32]
|
|
ldrh r2, [r0, #0x2e]
|
|
mvn r0, r1
|
|
tst r2, r0
|
|
bne _027EF7A4
|
|
mov r0, #2
|
|
bl sub_027EFEF4
|
|
b _027EF7A4
|
|
_027EF748:
|
|
add r0, r8, #0x10
|
|
bl sub_027EBB44
|
|
mov r2, r8
|
|
add r0, r4, #0x200
|
|
add r1, r4, #0x194
|
|
bl sub_037F8988
|
|
mov r0, #0
|
|
bl sub_027EFEF4
|
|
b _027EF7A4
|
|
_027EF76C:
|
|
add r0, r8, #0x34
|
|
add r1, r8, #0x28
|
|
bl sub_027EA0E0
|
|
add r0, r8, #0x28
|
|
add r1, r5, #0x64
|
|
bl sub_027EA0E0
|
|
add r0, r8, #0x10
|
|
bl sub_027EBB44
|
|
mov r2, r8
|
|
add r0, r4, #0x200
|
|
add r1, r4, #0x194
|
|
bl sub_037F8988
|
|
mov r0, #0
|
|
bl sub_027EFEF4
|
|
_027EF7A4:
|
|
mov r0, #0x81
|
|
_027EF7A8:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EF7B0: .word 0x0380FFF4
|
|
_027EF7B4: .word 0x000005E4
|
|
arm_func_end sub_027EF5EC
|
|
|
|
arm_func_start sub_027EF7B8
|
|
sub_027EF7B8: ; 0x027EF7B8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r2, _027EF944 ; =0x0380FFF4
|
|
mov sl, r0
|
|
ldr r2, [r2]
|
|
mov sb, #1
|
|
add r0, r2, #0x600
|
|
ldrh r6, [r0, #0x90]
|
|
add r4, r2, #0x31c
|
|
strh sb, [r1, #2]
|
|
ldrh r1, [r4, #0x12]
|
|
add r0, r2, #0x2c
|
|
add r5, r0, #0x400
|
|
cmp r1, #2
|
|
movne r0, #0xb
|
|
bne _027EF93C
|
|
ldrh r0, [sl, #0x10]
|
|
cmp r0, #0x204
|
|
movhi r0, #5
|
|
bhi _027EF93C
|
|
ldrh r0, [r5, #0x50]
|
|
add fp, r5, #0x50
|
|
cmp r0, #0
|
|
moveq sb, #0
|
|
mov r0, #0x14
|
|
mul r8, sb, r0
|
|
ldrh r1, [fp, r8]
|
|
cmp r1, #0
|
|
movne r0, #8
|
|
bne _027EF93C
|
|
ldr r1, _027EF948 ; =0x04808094
|
|
ldrh r1, [r1]
|
|
tst r1, #0x8000
|
|
movne r0, #8
|
|
bne _027EF93C
|
|
add r1, r5, r8
|
|
ldr r7, [r1, #0x58]
|
|
mov r1, #0
|
|
strh r1, [r7]
|
|
strh r1, [r7, #4]
|
|
strh r0, [r7, #8]
|
|
ldrh r0, [sl, #0x10]
|
|
ldr r3, _027EF94C ; =0x027F74AC
|
|
add r0, r0, #0x1e
|
|
strh r0, [r7, #0xa]
|
|
mov r0, #0x118
|
|
strh r0, [r7, #0xc]
|
|
add r0, r7, #0x10
|
|
add r1, r2, #0x3a8
|
|
add r2, r4, #8
|
|
bl sub_027EA130
|
|
ldrh r0, [sl, #0x12]
|
|
strh r0, [r7, #0x24]
|
|
ldrh r0, [sl, #0x10]
|
|
cmp r0, #0
|
|
beq _027EF8B0
|
|
cmp sb, #0
|
|
bne _027EF8A0
|
|
bl sub_027EA1AC
|
|
_027EF8A0:
|
|
ldr r1, [sl, #0x14]
|
|
ldrh r2, [sl, #0x10]
|
|
add r0, r7, #0x26
|
|
bl sub_027EAC7C
|
|
_027EF8B0:
|
|
tst r6, #4
|
|
beq _027EF8E0
|
|
ldrh r0, [sl, #0x10]
|
|
add r1, r7, #0x24
|
|
add r0, r0, #2
|
|
add r0, r1, r0
|
|
add r0, r0, #3
|
|
ldr r1, _027EF950 ; =0x0000B6B8
|
|
bic r2, r0, #3
|
|
ldr r0, _027EF954 ; =0x00001D46
|
|
strh r1, [r2]
|
|
strh r0, [r2, #2]
|
|
_027EF8E0:
|
|
mov r0, #0x1000000
|
|
bl sub_037FB928
|
|
mov r2, #2
|
|
ldr r1, _027EF958 ; =0x00003FFF
|
|
strh r2, [fp, r8]
|
|
add r5, r5, #0x52
|
|
ldrh r2, [r5, r8]
|
|
and r1, r7, r1
|
|
add r3, r2, #1
|
|
mov r2, r1, lsr #1
|
|
ldr r1, _027EF948 ; =0x04808094
|
|
strh r3, [r5, r8]
|
|
orr r2, r2, #0x8000
|
|
strh r2, [r1]
|
|
ldrh r1, [r4, #0x1e]
|
|
mov r4, r0
|
|
mov r0, r1, lsl #0x18
|
|
movs r0, r0, lsr #0x1f
|
|
bne _027EF930
|
|
bl sub_027EA098
|
|
_027EF930:
|
|
mov r0, r4
|
|
bl sub_037FB8F0
|
|
mov r0, #0
|
|
_027EF93C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EF944: .word 0x0380FFF4
|
|
_027EF948: .word 0x04808094
|
|
_027EF94C: .word 0x027F74AC
|
|
_027EF950: .word 0x0000B6B8
|
|
_027EF954: .word 0x00001D46
|
|
_027EF958: .word 0x00003FFF
|
|
arm_func_end sub_027EF7B8
|
|
|
|
arm_func_start sub_027EF95C
|
|
sub_027EF95C: ; 0x027EF95C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _027EFDE8 ; =0x0380FFF4
|
|
mov sl, r0
|
|
ldr r4, [r2]
|
|
mov sb, #1
|
|
add r0, r4, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
add r7, r4, #0x31c
|
|
strh sb, [r1, #2]
|
|
ldrh r1, [r7, #0x12]
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0x2c
|
|
add r6, r0, #0x400
|
|
cmp r1, #1
|
|
movne r0, #0xb
|
|
bne _027EFDDC
|
|
ldrh r0, [r6, #0x3c]
|
|
cmp r0, #0
|
|
movne r0, #8
|
|
bne _027EFDDC
|
|
ldrh r0, [sl, #0x10]
|
|
ldr r5, [r6, #0x44]
|
|
tst r0, #0x8000
|
|
beq _027EFA00
|
|
tst r0, #2
|
|
ldreqh r0, [r6, #0x94]
|
|
streqh r0, [sl, #0x14]
|
|
ldrh r0, [sl, #0x10]
|
|
tst r0, #4
|
|
ldreqh r0, [r6, #0xa0]
|
|
streqh r0, [sl, #0x16]
|
|
ldrh r0, [sl, #0x10]
|
|
tst r0, #8
|
|
ldreqh r0, [r6, #0x96]
|
|
streqh r0, [sl, #0x18]
|
|
ldrh r0, [sl, #0x10]
|
|
tst r0, #0x10
|
|
ldreqh r0, [r6, #0x9c]
|
|
moveq sb, #0
|
|
streqh r0, [sl, #0x1c]
|
|
_027EFA00:
|
|
ldrh r0, [sl, #0x1c]
|
|
cmp r0, #0x204
|
|
movhi r0, #5
|
|
bhi _027EFDDC
|
|
mov r1, #2
|
|
mov r8, #0
|
|
b _027EFA30
|
|
_027EFA1C:
|
|
ldrh r0, [sl, #0x16]
|
|
tst r0, r1
|
|
mov r0, r1, lsl #0x11
|
|
addne r8, r8, #1
|
|
mov r1, r0, lsr #0x10
|
|
_027EFA30:
|
|
cmp r1, #0
|
|
bne _027EFA1C
|
|
ldrh r0, [sl, #0x14]
|
|
strh r0, [r6, #0x94]
|
|
ldrh r0, [sl, #0x14]
|
|
tst r0, #0x8000
|
|
beq _027EFA7C
|
|
ldr r1, _027EFDEC ; =0x00007FFF
|
|
mov r2, #0xea
|
|
and r0, r0, r1
|
|
strh r0, [sl, #0x14]
|
|
ldrh r0, [sl, #0x14]
|
|
sub r0, r0, #0xd0
|
|
mov r0, r0, lsr #2
|
|
strh r2, [r5, #0xe]
|
|
cmp r0, #0x10000
|
|
bls _027EFACC
|
|
mov r0, #5
|
|
b _027EFDDC
|
|
_027EFA7C:
|
|
ldr r1, [sp, #4]
|
|
tst r1, #2
|
|
movne fp, #1
|
|
moveq fp, #0
|
|
add r3, fp, #6
|
|
movne r1, #2
|
|
movne r2, #6
|
|
add r0, r0, fp
|
|
add r3, r3, #0x200
|
|
moveq r1, fp
|
|
moveq r2, fp
|
|
cmp r0, r3
|
|
movhi r0, #5
|
|
bhi _027EFDDC
|
|
mov r3, r0, lsl #2
|
|
add r3, r3, #0xd0
|
|
add r1, r1, r3
|
|
strh r1, [sl, #0x14]
|
|
add r1, r2, #0xea
|
|
strh r1, [r5, #0xe]
|
|
_027EFACC:
|
|
add r0, r0, #9
|
|
bic fp, r0, #1
|
|
mul r0, fp, r8
|
|
str r0, [sp]
|
|
ldr r1, [sp]
|
|
add r0, r4, #0x188
|
|
add r1, r1, #0x1a
|
|
bl sub_037F886C
|
|
str r0, [r6, #0x90]
|
|
cmp r0, #0
|
|
moveq r0, #8
|
|
beq _027EFDDC
|
|
mov r0, #1
|
|
strh r0, [r6, #0x3c]
|
|
ldrh r0, [r6, #0x3e]
|
|
mov r2, #0
|
|
add r0, r0, #1
|
|
strh r0, [r6, #0x3e]
|
|
ldrh r0, [sl, #0x18]
|
|
add r3, r7, #8
|
|
strh r0, [r6, #0x96]
|
|
ldrh r0, [sl, #0x16]
|
|
mov ip, #0x14
|
|
strh r0, [r6, #0x98]
|
|
strh r2, [r6, #0x9a]
|
|
ldrh r0, [sl, #0x1c]
|
|
mov lr, #0x228
|
|
strh r0, [r6, #0x9c]
|
|
ldrh r1, [sl, #0x12]
|
|
add r0, r5, #0x10
|
|
strh r1, [r6, #0x9e]
|
|
strh r2, [r5]
|
|
ldrh r7, [sl, #0x16]
|
|
ldr r1, _027EFDF0 ; =0x027F74BC
|
|
strh r7, [r5, #2]
|
|
strh r2, [r5, #4]
|
|
strh ip, [r5, #8]
|
|
ldrh r7, [sl, #0x1c]
|
|
add r2, r4, #0x3a8
|
|
add r7, r7, #0x22
|
|
strh r7, [r5, #0xa]
|
|
strh lr, [r5, #0xc]
|
|
ldrh ip, [sl, #0x14]
|
|
ldrh r7, [r5, #0xe]
|
|
add ip, ip, #0xa
|
|
mla r7, ip, r8, r7
|
|
strh r7, [r5, #0xe]
|
|
bl sub_027EA130
|
|
ldrh r0, [sl, #0x10]
|
|
tst r0, #0x8000
|
|
ldrneh r1, [r5, #0x22]
|
|
ldrne r0, _027EFDF4 ; =0x0000FFFF
|
|
cmpne r1, r0
|
|
ldreq r0, _027EFDF4 ; =0x0000FFFF
|
|
movne r7, #0x4000
|
|
streqh r0, [r5, #0x22]
|
|
ldrh r0, [sl, #0x14]
|
|
moveq r7, #0
|
|
strh r0, [r5, #0x24]
|
|
ldrh r0, [sl, #0x16]
|
|
cmp sb, #0
|
|
strh r0, [r5, #0x26]
|
|
ldrh r0, [sl, #0x1e]
|
|
strh r0, [r5, #0x28]
|
|
ldrneh r0, [sl, #0x1c]
|
|
cmpne r0, #0
|
|
beq _027EFBEC
|
|
bl sub_027EA1AC
|
|
ldr r1, [sl, #0x20]
|
|
ldrh r2, [sl, #0x1c]
|
|
add r0, r5, #0x2a
|
|
bl sub_027EAC7C
|
|
_027EFBEC:
|
|
ldr r0, [sp, #4]
|
|
tst r0, #4
|
|
beq _027EFC20
|
|
ldrh r0, [sl, #0x1c]
|
|
add r1, r5, #0x28
|
|
add r0, r0, #2
|
|
add r0, r1, r0
|
|
add r0, r0, #3
|
|
ldr r1, _027EFDF8 ; =0x0000B6B8
|
|
bic r2, r0, #3
|
|
ldr r0, _027EFDFC ; =0x00001D46
|
|
strh r1, [r2]
|
|
strh r0, [r2, #2]
|
|
_027EFC20:
|
|
ldr r0, [r6, #0x90]
|
|
mov r1, #0x184
|
|
strh r1, [r0, #0xc]
|
|
ldr r0, [sp]
|
|
ldr r1, [r6, #0x90]
|
|
add r0, r0, #0xb
|
|
mov r0, r0, lsr #1
|
|
strh r0, [r1, #0xe]
|
|
ldrh r1, [sl, #0x16]
|
|
ldr r0, [r6, #0x90]
|
|
mov r3, #0
|
|
strh r1, [r0, #0x10]
|
|
ldr r0, [r6, #0x90]
|
|
ldr sb, _027EFDF4 ; =0x0000FFFF
|
|
strh r8, [r0, #0x14]
|
|
ldr r0, [r6, #0x90]
|
|
mov r1, #1
|
|
strh fp, [r0, #0x16]
|
|
ldr r0, [r6, #0x90]
|
|
mov r2, #2
|
|
strh r3, [r0, #0x18]
|
|
ldr r0, [r6, #0x90]
|
|
add r0, r0, #0x1a
|
|
b _027EFCA8
|
|
_027EFC80:
|
|
ldrh ip, [sl, #0x16]
|
|
tst ip, r2
|
|
strneh sb, [r0]
|
|
strneh r3, [r0, #2]
|
|
strneh r3, [r0, #6]
|
|
strneh r1, [r0, #4]
|
|
mov r2, r2, lsl #0x11
|
|
addne r0, r0, fp
|
|
mov r2, r2, lsr #0x10
|
|
add r1, r1, #1
|
|
_027EFCA8:
|
|
cmp r2, #0
|
|
bne _027EFC80
|
|
ldrh r0, [sl, #0x14]
|
|
ldr r2, _027EFE00 ; =0x048080C4
|
|
strh r0, [r2]
|
|
ldrh r0, [r5, #0xe]
|
|
strh r0, [r2, #-4]
|
|
ldrh r1, [sl, #0x1a]
|
|
ldrh r0, [sl, #0x18]
|
|
rsb sb, r1, #0x10000
|
|
cmp r0, #0
|
|
bne _027EFD40
|
|
ldrh r0, [r2, #-0xc4]
|
|
ldrh r1, [sl, #0x1c]
|
|
cmp r0, #0x1440
|
|
ldrh r0, [sl, #0x14]
|
|
add r1, r1, #0x22
|
|
mul r2, r0, r8
|
|
mov r1, r1, lsl #2
|
|
add r3, r1, #0x60
|
|
addne r3, r3, #0x3e8
|
|
add r0, r2, #0x388
|
|
add r0, r3, r0
|
|
mov r1, #0xa
|
|
add r0, r0, #0x32
|
|
bl sub_03806DD4
|
|
mov r4, r0
|
|
bl sub_037FDD00
|
|
ldr r1, _027EFE04 ; =0x00003FFF
|
|
ldr r2, _027EFE08 ; =0x04808118
|
|
and r1, r5, r1
|
|
mov r1, r1, lsr #1
|
|
orr r1, r1, #0x8000
|
|
strh r4, [r2]
|
|
orr r1, r1, r7
|
|
strh r1, [r2, #-0x88]
|
|
bl sub_037FDD14
|
|
b _027EFDD8
|
|
_027EFD40:
|
|
bl sub_037FDD00
|
|
ldr r1, _027EFE0C ; =0x048080F8
|
|
mov r8, r0
|
|
ldrh r0, [r1]
|
|
mov r1, #0xa
|
|
add r0, sb, r0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03806DD4
|
|
ldrh r3, [sl, #0x18]
|
|
add r1, r0, #3
|
|
cmp r1, r3
|
|
bhs _027EFDA8
|
|
ldr r1, _027EFE04 ; =0x00003FFF
|
|
ldr r2, _027EFE08 ; =0x04808118
|
|
sub r3, r3, r0
|
|
and r0, r5, r1
|
|
sub r1, r3, #1
|
|
mov r0, r0, lsr #1
|
|
orr r0, r0, #0x8000
|
|
strh r1, [r2]
|
|
orr r1, r0, r7
|
|
mov r0, r8
|
|
strh r1, [r2, #-0x88]
|
|
bl sub_037FDD14
|
|
b _027EFDD8
|
|
_027EFDA8:
|
|
mov r0, r8
|
|
bl sub_037FDD14
|
|
ldr r1, [r6, #0x90]
|
|
add r0, r4, #0x188
|
|
bl sub_037F8908
|
|
mov r0, #0
|
|
strh r0, [r6, #0x3c]
|
|
ldrh r1, [r6, #0x3e]
|
|
mov r0, #5
|
|
sub r1, r1, #1
|
|
strh r1, [r6, #0x3e]
|
|
b _027EFDDC
|
|
_027EFDD8:
|
|
mov r0, #0
|
|
_027EFDDC:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EFDE8: .word 0x0380FFF4
|
|
_027EFDEC: .word 0x00007FFF
|
|
_027EFDF0: .word 0x027F74BC
|
|
_027EFDF4: .word 0x0000FFFF
|
|
_027EFDF8: .word 0x0000B6B8
|
|
_027EFDFC: .word 0x00001D46
|
|
_027EFE00: .word 0x048080C4
|
|
_027EFE04: .word 0x00003FFF
|
|
_027EFE08: .word 0x04808118
|
|
_027EFE0C: .word 0x048080F8
|
|
arm_func_end sub_027EF95C
|
|
|
|
arm_func_start sub_027EFE10
|
|
sub_027EFE10: ; 0x027EFE10
|
|
stmdb sp!, {r4, lr}
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
mov r4, r0
|
|
rsb r0, r2, #0x10000
|
|
strh r0, [r4, #0xc]
|
|
mov r0, #0
|
|
strh r0, [r4, #0x12]
|
|
ldrh r1, [r4, #0x16]
|
|
add r0, r4, #0x10
|
|
strh r1, [r4, #0x22]
|
|
bl sub_027EBB44
|
|
ldr r0, _027EFE6C ; =0x0380FFF4
|
|
mov r2, r4
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x200
|
|
add r1, r1, #0x194
|
|
bl sub_037F8988
|
|
mov r0, #0
|
|
bl sub_027EFEF4
|
|
mov r0, #0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027EFE6C: .word 0x0380FFF4
|
|
arm_func_end sub_027EFE10
|
|
|
|
arm_func_start sub_027EFE70
|
|
sub_027EFE70: ; 0x027EFE70
|
|
stmdb sp!, {r4, lr}
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
mov r4, r0
|
|
ldrh r0, [r4, #0x10]
|
|
tst r0, #1
|
|
beq _027EFE90
|
|
bl sub_027F0B00
|
|
_027EFE90:
|
|
ldrh r0, [r4, #0x10]
|
|
tst r0, #2
|
|
beq _027EFEA0
|
|
bl sub_027F0B74
|
|
_027EFEA0:
|
|
ldrh r0, [r4, #0x10]
|
|
tst r0, #4
|
|
beq _027EFEB0
|
|
bl sub_027F0BC8
|
|
_027EFEB0:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027EFE70
|
|
|
|
arm_func_start sub_027EFEBC
|
|
sub_027EFEBC: ; 0x027EFEBC
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r2, [r1, #0xe]
|
|
mov r3, #2
|
|
add lr, r1, r2, lsl #1
|
|
ldrh ip, [lr, #0x10]
|
|
mov r2, #0
|
|
strh ip, [r1, #0xc]
|
|
strh r3, [lr, #0x12]
|
|
strh r2, [lr, #0x14]
|
|
ldrh r2, [r1, #0x18]
|
|
strh r2, [lr, #0x16]
|
|
bl sub_037F8D58
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_027EFEBC
|
|
|
|
arm_func_start sub_027EFEF4
|
|
sub_027EFEF4: ; 0x027EFEF4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0xc
|
|
ldr r1, _027F0108 ; =0x0380FFF4
|
|
mov sl, r0
|
|
ldr r2, [r1]
|
|
mov r0, #0xc
|
|
add r1, r2, #0x194
|
|
mla fp, sl, r0, r1
|
|
add r0, r2, #0x2c
|
|
ldrh r1, [fp, #8]
|
|
add r5, r0, #0x400
|
|
mov r0, #0x14
|
|
mla r6, sl, r0, r5
|
|
cmp r1, #0
|
|
add r4, r2, #0x344
|
|
beq _027F00FC
|
|
mov r0, #0x1000000
|
|
bl sub_037FB928
|
|
ldrh r1, [r6]
|
|
str r0, [sp]
|
|
cmp r1, #0
|
|
beq _027EFF54
|
|
bl sub_037FB8F0
|
|
b _027F00FC
|
|
_027EFF54:
|
|
ldr r7, [fp]
|
|
mvn r0, #0
|
|
str r0, [sp, #8]
|
|
_027EFF60:
|
|
ldr r0, [sp, #8]
|
|
cmp r7, r0
|
|
bne _027EFF78
|
|
ldr r0, [sp]
|
|
bl sub_037FB8F0
|
|
b _027F00FC
|
|
_027EFF78:
|
|
mov r0, r7
|
|
str r7, [sp, #4]
|
|
bl sub_037F8A80
|
|
mov r1, r7
|
|
add r8, r1, #0x10
|
|
mov r7, r0
|
|
ldrh sb, [r8, #2]
|
|
mov r0, r8
|
|
bl sub_027F027C
|
|
cmp r0, #0
|
|
beq _027EFFDC
|
|
ldrh r1, [r5, #0xae]
|
|
mov r0, r8
|
|
add r1, r1, #1
|
|
strh r1, [r5, #0xae]
|
|
mov r1, #2
|
|
strh r1, [r8, #8]
|
|
ldrh r2, [r6, #4]
|
|
mov r1, #0
|
|
add r2, r2, #1
|
|
strh r2, [r6, #4]
|
|
ldr r2, [r6, #0x10]
|
|
mov lr, pc
|
|
bx r2
|
|
_027EFFD8:
|
|
b _027EFF60
|
|
_027EFFDC:
|
|
cmp sl, #0
|
|
beq _027EFFFC
|
|
cmp sl, #1
|
|
bne _027F003C
|
|
mov r0, sb
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x40
|
|
bne _027F003C
|
|
_027EFFFC:
|
|
mov r0, sb
|
|
bl sub_027EC000
|
|
cmp r0, #0
|
|
beq _027EFF60
|
|
mov r0, sb
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x40
|
|
beq _027F003C
|
|
mov r2, #2
|
|
mov r0, fp
|
|
sub r1, r8, #0x10
|
|
strh r2, [r8, #8]
|
|
bl sub_027EFEBC
|
|
mov r0, r8
|
|
bl sub_027EBBD4
|
|
b _027EFF60
|
|
_027F003C:
|
|
mov r0, #1
|
|
strh r0, [r6]
|
|
ldrh r0, [r6, #2]
|
|
add r0, r0, #1
|
|
strh r0, [r6, #2]
|
|
str r8, [r6, #0xc]
|
|
ldrh r0, [r4, #0x10]
|
|
ldr r5, [r6, #8]
|
|
cmp r0, #0
|
|
bne _027F006C
|
|
mov r0, #2
|
|
bl sub_027E9CB4
|
|
_027F006C:
|
|
ldr r1, [sp, #4]
|
|
mov r0, r5
|
|
bl sub_027F0114
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
bne _027F009C
|
|
mov r0, sb
|
|
bl sub_027EC0EC
|
|
cmp r0, #1
|
|
ldrhih r0, [r5, #0xc]
|
|
orrhi r0, r0, #0x2000
|
|
strhih r0, [r5, #0xc]
|
|
_027F009C:
|
|
ldr r1, _027F010C ; =0x00003FFF
|
|
ldr r0, _027F0110 ; =0x048080A0
|
|
ldrh r4, [r8, #0x14]
|
|
and r2, r5, r1
|
|
and r1, r4, #0xc
|
|
cmp r1, #4
|
|
mov r1, r2, lsr #1
|
|
add r3, r0, sl, lsl #2
|
|
moveq r0, r1, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
orreq r0, r0, #0xa000
|
|
streqh r0, [r3]
|
|
beq _027F00F4
|
|
and r0, r4, #0xfc
|
|
cmp r0, #0x50
|
|
mov r0, r1, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
orreq r0, r0, #0x9000
|
|
streqh r0, [r3]
|
|
movne r0, r0, lsr #0x10
|
|
orrne r0, r0, #0x8000
|
|
strneh r0, [r3]
|
|
_027F00F4:
|
|
ldr r0, [sp]
|
|
bl sub_037FB8F0
|
|
_027F00FC:
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0108: .word 0x0380FFF4
|
|
_027F010C: .word 0x00003FFF
|
|
_027F0110: .word 0x048080A0
|
|
arm_func_end sub_027EFEF4
|
|
|
|
arm_func_start sub_027F0114
|
|
sub_027F0114: ; 0x027F0114
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r1
|
|
ldrh r1, [r4, #0x24]
|
|
mov r5, r0
|
|
tst r1, #0x4000
|
|
beq _027F01F0
|
|
ldr r0, _027F0268 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #3
|
|
bne _027F0148
|
|
bl sub_027EA1AC
|
|
_027F0148:
|
|
ldrh r1, [r4, #0xc]
|
|
ldr r0, _027F026C ; =0x0000FFFF
|
|
cmp r1, r0
|
|
bne _027F0170
|
|
ldrh r3, [r4, #0x16]
|
|
mov r0, r5
|
|
add r1, r4, #0x18
|
|
add r2, r4, #0x3c
|
|
bl sub_027EACE0
|
|
b _027F0184
|
|
_027F0170:
|
|
ldr r2, [r4, #0x3c]
|
|
ldrh r3, [r4, #0x16]
|
|
mov r0, r5
|
|
add r1, r4, #0x18
|
|
bl sub_027EACE0
|
|
_027F0184:
|
|
ldr r3, _027F0270 ; =0x04808044
|
|
ldr r1, _027F0268 ; =0x0380FFF4
|
|
ldrh r2, [r3]
|
|
ldrh r0, [r3]
|
|
add r0, r2, r0, lsl #8
|
|
strh r0, [r5, #0x24]
|
|
ldr r0, [r1]
|
|
ldrh r2, [r3]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x36]
|
|
and r2, r2, #0xff
|
|
orr r0, r2, r0, lsl #14
|
|
strh r0, [r5, #0x26]
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #8
|
|
beq _027F0224
|
|
ldrh r0, [r4, #0x22]
|
|
add r1, r5, #0xc
|
|
add r0, r1, r0
|
|
sub r0, r0, #7
|
|
bic r1, r0, #1
|
|
mov r0, #0
|
|
strh r0, [r1]
|
|
strh r0, [r1, #2]
|
|
b _027F0224
|
|
_027F01F0:
|
|
ldrh r2, [r4, #0xc]
|
|
ldr r1, _027F026C ; =0x0000FFFF
|
|
cmp r2, r1
|
|
bne _027F0214
|
|
ldrh r2, [r4, #0x16]
|
|
add r1, r4, #0x18
|
|
add r2, r2, #0x24
|
|
bl sub_027EAC7C
|
|
b _027F0224
|
|
_027F0214:
|
|
ldr r2, [r4, #0x3c]
|
|
ldrh r3, [r4, #0x16]
|
|
add r1, r4, #0x18
|
|
bl sub_027EAC9C
|
|
_027F0224:
|
|
ldr r0, _027F0268 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #4
|
|
beq _027F0260
|
|
ldrh r0, [r4, #0x22]
|
|
add r1, r5, #0xc
|
|
add r0, r1, r0
|
|
sub r0, r0, #1
|
|
ldr r1, _027F0274 ; =0x0000B6B8
|
|
bic r2, r0, #3
|
|
ldr r0, _027F0278 ; =0x00001D46
|
|
strh r1, [r2]
|
|
strh r0, [r2, #2]
|
|
_027F0260:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0268: .word 0x0380FFF4
|
|
_027F026C: .word 0x0000FFFF
|
|
_027F0270: .word 0x04808044
|
|
_027F0274: .word 0x0000B6B8
|
|
_027F0278: .word 0x00001D46
|
|
arm_func_end sub_027F0114
|
|
|
|
arm_func_start sub_027F027C
|
|
sub_027F027C: ; 0x027F027C
|
|
ldr r1, _027F02F8 ; =0x0380FFF4
|
|
ldrh r2, [r0, #0x14]
|
|
ldr r3, [r1]
|
|
mov r1, r2, lsl #0x1c
|
|
add ip, r3, #0x344
|
|
ldrh r3, [ip, #0x8c]
|
|
movs r1, r1, lsr #0x1e
|
|
mov r1, r3, lsl #0x13
|
|
mov r3, r1, lsr #0x10
|
|
bne _027F02D0
|
|
ldrh r1, [ip, #0xc]
|
|
cmp r1, #1
|
|
bne _027F02D8
|
|
mov r1, r2, lsl #0x18
|
|
mov r1, r1, lsr #0x1c
|
|
cmp r1, #1
|
|
cmpne r1, #3
|
|
cmpne r1, #0xb
|
|
moveq r1, r3, lsl #0xd
|
|
moveq r3, r1, lsr #0x10
|
|
b _027F02D8
|
|
_027F02D0:
|
|
mov r1, r3, lsl #0xd
|
|
mov r3, r1, lsr #0x10
|
|
_027F02D8:
|
|
ldr r1, [ip, #0xa8]
|
|
ldrh r0, [r0, #4]
|
|
sub r0, r1, r0
|
|
mov r0, r0, lsl #0x10
|
|
cmp r3, r0, lsr #16
|
|
movlo r0, #1
|
|
movhs r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027F02F8: .word 0x0380FFF4
|
|
arm_func_end sub_027F027C
|
|
|
|
arm_func_start sub_027F02FC
|
|
sub_027F02FC: ; 0x027F02FC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r2, _027F0474 ; =0x0380FFF4
|
|
mov sb, r0
|
|
ldr r4, [r2]
|
|
mov r8, r1
|
|
add r5, r4, #0x194
|
|
add r6, r4, #0x344
|
|
sub r7, sb, #0x10
|
|
bl sub_027EBBD4
|
|
ldrh r0, [sb, #8]
|
|
tst r0, #2
|
|
bne _027F0390
|
|
ldr r0, [r4, #0x53c]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x53c]
|
|
ldrh r0, [sb, #0x14]
|
|
mov r0, r0, lsl #0x17
|
|
movs r0, r0, lsr #0x1f
|
|
beq _027F036C
|
|
ldrh r0, [sb, #0x24]
|
|
tst r0, #1
|
|
ldrne r0, [r4, #0x550]
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x550]
|
|
ldreq r0, [r4, #0x54c]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x54c]
|
|
b _027F039C
|
|
_027F036C:
|
|
ldrh r0, [sb, #0x18]
|
|
tst r0, #1
|
|
ldrne r0, [r4, #0x550]
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x550]
|
|
ldreq r0, [r4, #0x54c]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x54c]
|
|
b _027F039C
|
|
_027F0390:
|
|
ldr r0, [r4, #0x540]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x540]
|
|
_027F039C:
|
|
ldrh r0, [sb, #0x14]
|
|
mov r1, r7
|
|
mov r0, r0, lsl #0x11
|
|
movs r0, r0, lsr #0x1f
|
|
ldrne r0, [r4, #0x554]
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x554]
|
|
mov r0, r5
|
|
bl sub_027EFEBC
|
|
ldr r0, _027F0474 ; =0x0380FFF4
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
strh r1, [r0, #0x2c]
|
|
ldrh r0, [sb, #2]
|
|
bl sub_027EC020
|
|
cmp r0, #0
|
|
beq _027F03F8
|
|
ldrh r0, [sb, #0x14]
|
|
tst r0, #0x2000
|
|
bne _027F03F8
|
|
ldrh r0, [sb, #2]
|
|
bl sub_027EBDA8
|
|
_027F03F8:
|
|
cmp r8, #0
|
|
beq _027F046C
|
|
ldrh r0, [r5, #8]
|
|
cmp r0, #0
|
|
beq _027F0418
|
|
mov r0, #0
|
|
bl sub_027EFEF4
|
|
b _027F046C
|
|
_027F0418:
|
|
ldrh r0, [r6, #0xc]
|
|
add r0, r0, #0xfe
|
|
add r0, r0, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #1
|
|
bhi _027F046C
|
|
ldrh r0, [r6, #8]
|
|
cmp r0, #0x40
|
|
bne _027F046C
|
|
ldrh r0, [r6, #0xe]
|
|
cmp r0, #0
|
|
beq _027F046C
|
|
ldrh r0, [r6, #0x88]
|
|
bl sub_027EC0EC
|
|
cmp r0, #0
|
|
ldreqh r0, [r6, #0x8e]
|
|
cmpeq r0, #0
|
|
bne _027F046C
|
|
mov r0, #1
|
|
bl sub_027E9CB4
|
|
_027F046C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0474: .word 0x0380FFF4
|
|
arm_func_end sub_027F02FC
|
|
|
|
arm_func_start sub_027F0478
|
|
sub_027F0478: ; 0x027F0478
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r2, _027F0940 ; =0x0380FFF4
|
|
mov sl, r0
|
|
ldr r4, [r2]
|
|
ldrh r2, [sl, #8]
|
|
add r0, r4, #4
|
|
ldrh r7, [sl, #2]
|
|
mov sb, r1
|
|
tst r2, #2
|
|
add r8, r4, #0x344
|
|
add r5, r0, #0x400
|
|
add r6, r4, #0x1a0
|
|
bne _027F0500
|
|
ldr r0, [r4, #0x53c]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x53c]
|
|
ldrh r0, [sl, #0x18]
|
|
tst r0, #1
|
|
ldrne r0, [r4, #0x550]
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x550]
|
|
ldreq r0, [r4, #0x54c]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x54c]
|
|
mov r0, r7
|
|
bl sub_027EC020
|
|
cmp r0, #0
|
|
beq _027F050C
|
|
ldrh r0, [sl, #0x14]
|
|
tst r0, #0x2000
|
|
bne _027F050C
|
|
mov r0, r7
|
|
bl sub_027EBDA8
|
|
b _027F050C
|
|
_027F0500:
|
|
ldr r0, [r4, #0x540]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x540]
|
|
_027F050C:
|
|
ldrh r0, [sl, #0x14]
|
|
mov r0, r0, lsl #0x11
|
|
movs r0, r0, lsr #0x1f
|
|
ldrne r0, [r4, #0x554]
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x554]
|
|
ldrh r0, [sl, #0xc]
|
|
ldr r1, [r4, #0x544]
|
|
and r0, r0, #0xff
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x544]
|
|
ldrh r0, [sl, #0x14]
|
|
and r4, r0, #0xfc
|
|
cmp r4, #0xa0
|
|
bhi _027F0568
|
|
bhs _027F06D0
|
|
cmp r4, #0x10
|
|
bhi _027F055C
|
|
beq _027F060C
|
|
b _027F08F8
|
|
_027F055C:
|
|
cmp r4, #0x30
|
|
beq _027F060C
|
|
b _027F08F8
|
|
_027F0568:
|
|
cmp r4, #0xb0
|
|
bhi _027F0578
|
|
beq _027F0584
|
|
b _027F08F8
|
|
_027F0578:
|
|
cmp r4, #0xc0
|
|
beq _027F07B4
|
|
b _027F08F8
|
|
_027F0584:
|
|
cmp r7, #0
|
|
beq _027F08F8
|
|
ldrh r0, [sl, #8]
|
|
tst r0, #2
|
|
bne _027F08F8
|
|
ldrh r1, [sl, #0x2c]
|
|
cmp r1, #0
|
|
ldreqh r0, [sl, #0x2e]
|
|
cmpeq r0, #2
|
|
ldreqh r0, [sl, #0x30]
|
|
cmpeq r0, #0
|
|
bne _027F05D4
|
|
mov r0, r7, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x30
|
|
bl sub_027EBC44
|
|
ldrh r1, [sl, #0x2c]
|
|
add r0, sl, #0x18
|
|
bl sub_027EDB68
|
|
b _027F08F8
|
|
_027F05D4:
|
|
cmp r1, #1
|
|
ldreqh r0, [sl, #0x2e]
|
|
cmpeq r0, #4
|
|
ldreqh r0, [sl, #0x30]
|
|
cmpeq r0, #0
|
|
bne _027F08F8
|
|
mov r0, r7, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x30
|
|
bl sub_027EBC44
|
|
ldrh r1, [sl, #0x2c]
|
|
add r0, sl, #0x18
|
|
bl sub_027EDB68
|
|
b _027F08F8
|
|
_027F060C:
|
|
cmp r7, #0
|
|
beq _027F08F8
|
|
ldrh r0, [sl, #8]
|
|
tst r0, #2
|
|
bne _027F0684
|
|
ldrh r0, [sl, #0x2e]
|
|
cmp r0, #0
|
|
bne _027F08F8
|
|
mov r0, r7
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x30
|
|
bne _027F08F8
|
|
mov r0, r7, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x40
|
|
bl sub_027EBC44
|
|
ldrh r2, [sl, #0x12]
|
|
cmp r4, #0x10
|
|
add r3, sl, #0x14
|
|
bne _027F0670
|
|
ldrh r1, [sl, #0x30]
|
|
add r0, sl, #0x18
|
|
add r2, r3, r2
|
|
bl sub_027EDC60
|
|
b _027F08F8
|
|
_027F0670:
|
|
ldrh r1, [sl, #0x30]
|
|
add r0, sl, #0x18
|
|
add r2, r3, r2
|
|
bl sub_027EDD58
|
|
b _027F08F8
|
|
_027F0684:
|
|
mov r0, r7, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027EBF60
|
|
add r0, sl, #0x18
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl sub_027F1EBC
|
|
cmp r0, #0
|
|
beq _027F08F8
|
|
mov r1, #2
|
|
strh r1, [r0]
|
|
cmp sb, #0
|
|
beq _027F06C8
|
|
bl sub_027F1094
|
|
mov r0, #1
|
|
bl sub_027EFEF4
|
|
b _027F08F8
|
|
_027F06C8:
|
|
bl sub_027F1094
|
|
b _027F08F8
|
|
_027F06D0:
|
|
ldrh r0, [r8, #0xc]
|
|
cmp r0, #1
|
|
bne _027F0760
|
|
cmp r7, #0
|
|
beq _027F0708
|
|
mov r0, r7
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x30
|
|
bls _027F0778
|
|
mov r0, r7, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x30
|
|
bl sub_027EBC44
|
|
b _027F0778
|
|
_027F0708:
|
|
ldrh r0, [sl, #0x18]
|
|
tst r0, #1
|
|
beq _027F0778
|
|
ldr r4, _027F0940 ; =0x0380FFF4
|
|
mov r8, #1
|
|
mov r7, #0x30
|
|
b _027F0748
|
|
_027F0724:
|
|
mov r0, r8
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x30
|
|
bls _027F0744
|
|
mov r0, r8, lsl #0x10
|
|
mov r1, r7
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027EBC44
|
|
_027F0744:
|
|
add r8, r8, #1
|
|
_027F0748:
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x22]
|
|
cmp r8, r0
|
|
blo _027F0724
|
|
b _027F0778
|
|
_027F0760:
|
|
ldrh r0, [r8, #8]
|
|
cmp r0, #0x30
|
|
bls _027F0778
|
|
mov r0, #0x30
|
|
bl sub_037F9238
|
|
bl sub_027EA03C
|
|
_027F0778:
|
|
ldrh r0, [r5]
|
|
cmp r0, #0x71
|
|
ldreq r0, [r5, #4]
|
|
cmpeq sl, r0
|
|
bne _027F08F8
|
|
ldrh r0, [sl, #8]
|
|
tst r0, #2
|
|
ldr r0, [r5, #0x1c]
|
|
moveq r1, #0
|
|
movne r1, #0xc
|
|
strh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r0, [r5]
|
|
bl sub_027EDB14
|
|
b _027F08F8
|
|
_027F07B4:
|
|
ldrh r0, [r8, #0xc]
|
|
cmp r0, #1
|
|
bne _027F0844
|
|
cmp r7, #0
|
|
beq _027F07EC
|
|
mov r0, r7
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x20
|
|
bls _027F085C
|
|
mov r0, r7, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x20
|
|
bl sub_027EBC44
|
|
b _027F085C
|
|
_027F07EC:
|
|
ldrh r0, [sl, #0x18]
|
|
tst r0, #1
|
|
beq _027F085C
|
|
ldr r4, _027F0940 ; =0x0380FFF4
|
|
mov r8, #1
|
|
mov fp, #0x20
|
|
b _027F082C
|
|
_027F0808:
|
|
mov r0, r8
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x20
|
|
bls _027F0828
|
|
mov r0, r8, lsl #0x10
|
|
mov r1, fp
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027EBC44
|
|
_027F0828:
|
|
add r8, r8, #1
|
|
_027F082C:
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x22]
|
|
cmp r8, r0
|
|
blo _027F0808
|
|
b _027F085C
|
|
_027F0844:
|
|
ldrh r0, [r8, #8]
|
|
cmp r0, #0x20
|
|
bls _027F085C
|
|
mov r0, #0x20
|
|
bl sub_037F9238
|
|
bl sub_027EA03C
|
|
_027F085C:
|
|
ldrh r0, [r5]
|
|
cmp r0, #0x41
|
|
ldreq r0, [r5, #4]
|
|
cmpeq sl, r0
|
|
bne _027F0894
|
|
ldrh r0, [sl, #8]
|
|
tst r0, #2
|
|
ldr r0, [r5, #0x1c]
|
|
moveq r1, #0
|
|
movne r1, #0xc
|
|
strh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r0, [r5]
|
|
bl sub_027EDB14
|
|
_027F0894:
|
|
ldrh r0, [sl]
|
|
cmp r0, #1
|
|
bne _027F08E4
|
|
cmp r7, #0
|
|
beq _027F08D4
|
|
ldr r0, _027F0940 ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, r7, lsl #0x10
|
|
add r1, r1, #0x500
|
|
ldrh r3, [r1, #0x34]
|
|
mvn r2, r2, lsl r7
|
|
and r2, r3, r2
|
|
mov r0, r0, lsr #0x10
|
|
strh r2, [r1, #0x34]
|
|
bl sub_027EC42C
|
|
_027F08D4:
|
|
add r0, sl, #0x18
|
|
mov r1, #1
|
|
bl sub_027EDBE4
|
|
b _027F08F8
|
|
_027F08E4:
|
|
cmp r0, #2
|
|
bne _027F08F8
|
|
ldrh r1, [sl, #0x2c]
|
|
add r0, sl, #0x18
|
|
bl sub_027EDBE4
|
|
_027F08F8:
|
|
mov r0, sl
|
|
bl sub_027EBBD4
|
|
mov r0, r6
|
|
sub r1, sl, #0x10
|
|
bl sub_037F8908
|
|
ldr r0, _027F0940 ; =0x0380FFF4
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
cmp sb, #0
|
|
add r0, r0, #0x400
|
|
strh r1, [r0, #0x40]
|
|
ldrneh r0, [r6, #8]
|
|
cmpne r0, #0
|
|
beq _027F0938
|
|
mov r0, #1
|
|
bl sub_027EFEF4
|
|
_027F0938:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0940: .word 0x0380FFF4
|
|
arm_func_end sub_027F0478
|
|
|
|
arm_func_start sub_027F0944
|
|
sub_027F0944: ; 0x027F0944
|
|
ldr r2, _027F09A8 ; =0x0380FFF4
|
|
ldrh r1, [r0, #4]
|
|
ldr r3, [r2]
|
|
and r1, r1, #0xff
|
|
ldr r2, [r3, #0x544]
|
|
add r1, r2, r1
|
|
str r1, [r3, #0x544]
|
|
ldrh r0, [r0]
|
|
tst r0, #2
|
|
ldrne r0, [r3, #0x540]
|
|
addne r0, r0, #1
|
|
strne r0, [r3, #0x540]
|
|
bne _027F0990
|
|
ldr r0, [r3, #0x53c]
|
|
add r0, r0, #1
|
|
str r0, [r3, #0x53c]
|
|
ldr r0, [r3, #0x54c]
|
|
add r0, r0, #1
|
|
str r0, [r3, #0x54c]
|
|
_027F0990:
|
|
ldr r0, _027F09A8 ; =0x0380FFF4
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
strh r1, [r0, #0x54]
|
|
bx lr
|
|
.align 2, 0
|
|
_027F09A8: .word 0x0380FFF4
|
|
arm_func_end sub_027F0944
|
|
|
|
arm_func_start sub_027F09AC
|
|
sub_027F09AC: ; 0x027F09AC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _027F0AB0 ; =0x0380FFF4
|
|
mov r6, r0
|
|
ldr r2, [r2]
|
|
mov r5, r1
|
|
ldr r1, [r2, #0x550]
|
|
add r4, r2, #0x17c
|
|
add r1, r1, #1
|
|
str r1, [r2, #0x550]
|
|
ldrh r1, [r6, #0x14]
|
|
mov r1, r1, lsl #0x1c
|
|
movs r1, r1, lsr #0x1e
|
|
bne _027F0A04
|
|
bl sub_027EBB44
|
|
add r0, r4, #0x30
|
|
add r1, r4, #0x24
|
|
sub r2, r6, #0x10
|
|
bl sub_037F8988
|
|
mov r0, r6
|
|
mov r1, #0
|
|
bl sub_027F0478
|
|
b _027F0A10
|
|
_027F0A04:
|
|
add r0, r4, #0x30
|
|
sub r1, r6, #0x10
|
|
bl sub_027EFEBC
|
|
_027F0A10:
|
|
ldr r1, _027F0AB0 ; =0x0380FFF4
|
|
mov r2, #0
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x400
|
|
strh r2, [r0, #0x54]
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, #0x45c]
|
|
ldrh r0, [r0, #0xc]
|
|
mov r0, r0, lsl #0x12
|
|
movs r0, r0, lsr #0x1f
|
|
bne _027F0A80
|
|
ldr r1, _027F0AB4 ; =0x048080AC
|
|
mov r0, #8
|
|
strh r0, [r1]
|
|
mov r0, #5
|
|
strh r0, [r1, #2]
|
|
cmp r5, #0
|
|
beq _027F0A80
|
|
ldrh r0, [r4, #0x2c]
|
|
cmp r0, #0
|
|
beq _027F0A6C
|
|
mov r0, #1
|
|
bl sub_027EFEF4
|
|
_027F0A6C:
|
|
ldrh r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
beq _027F0A80
|
|
mov r0, #0
|
|
bl sub_027EFEF4
|
|
_027F0A80:
|
|
ldrh r0, [r4, #0x38]
|
|
cmp r0, #0
|
|
beq _027F0AA0
|
|
cmp r5, #0
|
|
beq _027F0AA8
|
|
mov r0, #2
|
|
bl sub_027EFEF4
|
|
b _027F0AA8
|
|
_027F0AA0:
|
|
mov r0, #0
|
|
bl sub_027EC1C8
|
|
_027F0AA8:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0AB0: .word 0x0380FFF4
|
|
_027F0AB4: .word 0x048080AC
|
|
arm_func_end sub_027F09AC
|
|
|
|
arm_func_start sub_027F0AB8
|
|
sub_027F0AB8: ; 0x027F0AB8
|
|
ldr r2, [r0, #8]
|
|
ldr r1, _027F0AFC ; =0x0380FFF4
|
|
ldrh r3, [r2, #4]
|
|
ldr r2, [r1]
|
|
ands r3, r3, #0xff
|
|
ldreq r1, [r2, #0x5a8]
|
|
addeq r1, r1, #1
|
|
streq r1, [r2, #0x5a8]
|
|
ldrne r1, [r2, #0x5a4]
|
|
addne r1, r1, r3
|
|
strne r1, [r2, #0x5a4]
|
|
ldrh r2, [r0, #4]
|
|
mov r1, #0
|
|
add r2, r2, #1
|
|
strh r2, [r0, #4]
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0AFC: .word 0x0380FFF4
|
|
arm_func_end sub_027F0AB8
|
|
|
|
arm_func_start sub_027F0B00
|
|
sub_027F0B00: ; 0x027F0B00
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _027F0B6C ; =0x0380FFF4
|
|
mov r0, #0x1000000
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x2c
|
|
add r4, r1, #0x400
|
|
bl sub_037FB928
|
|
ldr r1, _027F0B6C ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x3a]
|
|
mov r0, r0, lsl #0x18
|
|
movs r0, r0, lsr #0x1f
|
|
bne _027F0B44
|
|
mov r0, #0
|
|
bl sub_027EA0BC
|
|
_027F0B44:
|
|
ldr r0, _027F0B70 ; =0x048080B4
|
|
mov r1, #0xc0
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r4, #0x50]
|
|
mov r0, r5
|
|
strh r1, [r4, #0x64]
|
|
bl sub_037FB8F0
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0B6C: .word 0x0380FFF4
|
|
_027F0B70: .word 0x048080B4
|
|
arm_func_end sub_027F0B00
|
|
|
|
arm_func_start sub_027F0B74
|
|
sub_027F0B74: ; 0x027F0B74
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _027F0BC0 ; =0x0380FFF4
|
|
mov r0, #0x1000000
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x2c
|
|
add r4, r1, #0x400
|
|
bl sub_037FB928
|
|
ldr r1, _027F0BC4 ; =0x048080B4
|
|
mov r2, #2
|
|
strh r2, [r1]
|
|
ldrh r1, [r4, #0x3c]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
beq _027F0BB0
|
|
bl sub_037FACB4
|
|
_027F0BB0:
|
|
mov r0, r4
|
|
bl sub_037FB8F0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0BC0: .word 0x0380FFF4
|
|
_027F0BC4: .word 0x048080B4
|
|
arm_func_end sub_027F0B74
|
|
|
|
arm_func_start sub_027F0BC8
|
|
sub_027F0BC8: ; 0x027F0BC8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _027F0C68 ; =0x0380FFF4
|
|
mov r0, #0x1000000
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x2c
|
|
add r4, r1, #0x400
|
|
bl sub_037FB928
|
|
ldr r1, _027F0C68 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #1
|
|
ldr r0, _027F0C6C ; =0x048080B4
|
|
bne _027F0C30
|
|
mov r1, #9
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, #0x28]
|
|
cmp r0, #0
|
|
beq _027F0C20
|
|
mov r0, #2
|
|
bl sub_027F0C70
|
|
_027F0C20:
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl sub_027F0FF0
|
|
b _027F0C38
|
|
_027F0C30:
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
_027F0C38:
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _027F0C4C
|
|
mov r0, #0
|
|
bl sub_027F0C70
|
|
_027F0C4C:
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl sub_027F0FF0
|
|
mov r0, r5
|
|
bl sub_037FB8F0
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0C68: .word 0x0380FFF4
|
|
_027F0C6C: .word 0x048080B4
|
|
arm_func_end sub_027F0BC8
|
|
|
|
arm_func_start sub_027F0C70
|
|
sub_027F0C70: ; 0x027F0C70
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _027F0CD0 ; =0x0380FFF4
|
|
mov r1, #0x14
|
|
ldr r2, [r2]
|
|
mul r1, r0, r1
|
|
add r0, r2, #0x2c
|
|
add r2, r0, #0x400
|
|
ldrh r0, [r2, r1]
|
|
add r2, r2, r1
|
|
cmp r0, #0
|
|
beq _027F0CC8
|
|
ldr r0, [r2, #8]
|
|
ldrh r1, [r0]
|
|
ldr r0, [r2, #0xc]
|
|
cmp r1, #0
|
|
moveq r1, #2
|
|
strh r1, [r0, #8]
|
|
ldr r0, [r2, #0xc]
|
|
ldr r2, [r2, #0x10]
|
|
mov r1, #0
|
|
mov lr, pc
|
|
bx r2
|
|
_027F0CC8:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0CD0: .word 0x0380FFF4
|
|
arm_func_end sub_027F0C70
|
|
|
|
arm_func_start sub_027F0CD4
|
|
sub_027F0CD4: ; 0x027F0CD4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _027F0D54 ; =0x0380FFF4
|
|
mov r7, r0
|
|
mov r0, #0x14
|
|
ldr r1, [r1]
|
|
mul r4, r7, r0
|
|
add r0, r1, #0x2c
|
|
add r5, r0, #0x400
|
|
mov r0, #0x1000000
|
|
add r6, r5, r4
|
|
bl sub_037FB928
|
|
ldr r1, _027F0D58 ; =0x027F7870
|
|
mov r2, r7, lsl #1
|
|
ldrh r2, [r1, r2]
|
|
ldr r1, _027F0D5C ; =0x048080B4
|
|
strh r2, [r1]
|
|
ldrh r1, [r5, r4]
|
|
cmp r1, #0
|
|
beq _027F0D48
|
|
ldr r2, [r6, #0xc]
|
|
ldrh r1, [r2, #0x14]
|
|
tst r1, #0x4000
|
|
ldreq r1, [r6, #8]
|
|
ldreqh r1, [r1, #4]
|
|
streqh r1, [r2, #0xc]
|
|
ldr r2, [r6, #8]
|
|
ldr r1, [r6, #0xc]
|
|
ldrh r2, [r2, #0x22]
|
|
strh r2, [r1, #0x2a]
|
|
_027F0D48:
|
|
bl sub_037FB8F0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0D54: .word 0x0380FFF4
|
|
_027F0D58: .word 0x027F7870
|
|
_027F0D5C: .word 0x048080B4
|
|
arm_func_end sub_027F0CD4
|
|
|
|
arm_func_start sub_027F0D60
|
|
sub_027F0D60: ; 0x027F0D60
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov fp, r0
|
|
mov r7, #0
|
|
bl sub_027EC0EC
|
|
cmp r0, #0
|
|
beq _027F0E4C
|
|
mov r8, r7
|
|
_027F0D7C:
|
|
ldr r0, _027F0E54 ; =0x0380FFF4
|
|
mov r1, #0xc
|
|
ldr r2, [r0]
|
|
mul sl, r8, r1
|
|
sub r0, r1, #0xd
|
|
add r1, r2, sl
|
|
ldr r5, [r1, #0x194]
|
|
cmp r5, r0
|
|
beq _027F0E40
|
|
mov r0, #0x14
|
|
mul sb, r8, r0
|
|
mvn r4, #0
|
|
_027F0DAC:
|
|
mov r0, r5
|
|
bl sub_037F8A80
|
|
add r6, r5, #0x10
|
|
ldrh r1, [r6, #2]
|
|
str r0, [sp]
|
|
cmp r1, fp
|
|
bne _027F0E30
|
|
cmp r8, #1
|
|
ldrne r0, _027F0E54 ; =0x0380FFF4
|
|
ldrne r0, [r0]
|
|
addne r0, sb, r0
|
|
ldrne r0, [r0, #0x438]
|
|
cmpne r6, r0
|
|
bne _027F0E00
|
|
mov r0, r6
|
|
bl sub_027EBBD4
|
|
mov r1, #0
|
|
mov r0, r6
|
|
strh r1, [r6, #2]
|
|
bl sub_027EBB44
|
|
b _027F0E30
|
|
_027F0E00:
|
|
mov r0, #2
|
|
strh r0, [r6, #8]
|
|
mov r0, r6
|
|
bl sub_027EBBD4
|
|
ldr r0, _027F0E54 ; =0x0380FFF4
|
|
mov r1, r5
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x194
|
|
add r0, r0, sl
|
|
bl sub_027EFEBC
|
|
cmp r7, #0
|
|
moveq r7, #1
|
|
_027F0E30:
|
|
ldr r5, [sp]
|
|
mov r0, r5
|
|
cmp r0, r4
|
|
bne _027F0DAC
|
|
_027F0E40:
|
|
add r8, r8, #1
|
|
cmp r8, #3
|
|
blo _027F0D7C
|
|
_027F0E4C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0E54: .word 0x0380FFF4
|
|
arm_func_end sub_027F0D60
|
|
|
|
arm_func_start sub_027F0E58
|
|
sub_027F0E58: ; 0x027F0E58
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r4, _027F0F04 ; =0x0380FFF4
|
|
ldrh r1, [r0]
|
|
ldr r2, [r4]
|
|
tst r1, #1
|
|
beq _027F0EAC
|
|
add r0, r2, #0x300
|
|
ldrh r0, [r0, #0x22]
|
|
mov r5, #1
|
|
cmp r0, #1
|
|
bls _027F0EFC
|
|
b _027F0E94
|
|
_027F0E88:
|
|
mov r0, r5
|
|
bl sub_027F0D60
|
|
add r5, r5, #1
|
|
_027F0E94:
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x22]
|
|
cmp r5, r0
|
|
blo _027F0E88
|
|
b _027F0EFC
|
|
_027F0EAC:
|
|
bl sub_027EB900
|
|
mov r4, r0
|
|
cmp r4, #0xff
|
|
beq _027F0EC0
|
|
bl sub_027F0D60
|
|
_027F0EC0:
|
|
ldr r0, _027F0F04 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x2e]
|
|
cmp r0, #1
|
|
bne _027F0EFC
|
|
mov r0, r4
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x40
|
|
bne _027F0EFC
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x20
|
|
bl sub_027EBC44
|
|
bl sub_027F0B00
|
|
_027F0EFC:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0F04: .word 0x0380FFF4
|
|
arm_func_end sub_027F0E58
|
|
|
|
arm_func_start sub_027F0F08
|
|
sub_027F0F08: ; 0x027F0F08
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027F0FEC ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x300
|
|
ldrh r1, [r0, #0x50]
|
|
add r0, r2, #0x2c
|
|
cmp r1, #1
|
|
add r4, r0, #0x400
|
|
beq _027F0F3C
|
|
cmp r1, #2
|
|
cmpne r1, #3
|
|
beq _027F0F98
|
|
b _027F0FC0
|
|
_027F0F3C:
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl sub_027F0FF0
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_027F0FF0
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl sub_027F0FF0
|
|
ldrh r0, [r4, #0x3c]
|
|
cmp r0, #0
|
|
beq _027F0FE4
|
|
mov r0, #0
|
|
strh r0, [r4, #0x3c]
|
|
ldrh r1, [r4, #0x3e]
|
|
ldr r0, _027F0FEC ; =0x0380FFF4
|
|
sub r1, r1, #1
|
|
strh r1, [r4, #0x3e]
|
|
ldr r0, [r0]
|
|
ldr r1, [r4, #0x90]
|
|
add r0, r0, #0x188
|
|
bl sub_037F8908
|
|
b _027F0FE4
|
|
_027F0F98:
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl sub_027F0FF0
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_027F0FF0
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl sub_027F0FF0
|
|
b _027F0FE4
|
|
_027F0FC0:
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl sub_027F0FF0
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_027F0FF0
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl sub_027F0FF0
|
|
_027F0FE4:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F0FEC: .word 0x0380FFF4
|
|
arm_func_end sub_027F0F08
|
|
|
|
arm_func_start sub_027F0FF0
|
|
sub_027F0FF0: ; 0x027F0FF0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r5, _027F1078 ; =0x0380FFF4
|
|
mov r2, #0xc
|
|
mov sl, r0
|
|
mul r8, sl, r2
|
|
ldr r3, [r5]
|
|
sub r0, r2, #0xd
|
|
add r2, r3, r8
|
|
ldr r6, [r2, #0x194]
|
|
mov sb, r1
|
|
cmp r6, r0
|
|
beq _027F1070
|
|
mov fp, #2
|
|
mvn r4, #0
|
|
_027F1028:
|
|
mov r0, r6
|
|
bl sub_037F8A80
|
|
mov r7, r0
|
|
cmp sl, #2
|
|
beq _027F1044
|
|
add r0, r6, #0x10
|
|
bl sub_027EBBD4
|
|
_027F1044:
|
|
strh fp, [r6, #0x18]
|
|
cmp sb, #0
|
|
beq _027F1064
|
|
ldr r0, [r5]
|
|
mov r1, r6
|
|
add r0, r0, #0x194
|
|
add r0, r0, r8
|
|
bl sub_027EFEBC
|
|
_027F1064:
|
|
mov r6, r7
|
|
cmp r7, r4
|
|
bne _027F1028
|
|
_027F1070:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1078: .word 0x0380FFF4
|
|
arm_func_end sub_027F0FF0
|
|
|
|
arm_func_start sub_027F107C
|
|
sub_027F107C: ; 0x027F107C
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_027F1094
|
|
mov r0, #1
|
|
bl sub_027EFEF4
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_027F107C
|
|
|
|
arm_func_start sub_027F1094
|
|
sub_027F1094: ; 0x027F1094
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
add r0, r4, #0x18
|
|
bl sub_027EB900
|
|
strh r0, [r4, #2]
|
|
ldrh r0, [r4, #2]
|
|
cmp r0, #0xff
|
|
moveq r0, #0
|
|
streqh r0, [r4, #2]
|
|
ldr r0, _027F1104 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x3ec]
|
|
strh r0, [r4, #4]
|
|
ldrh r0, [r4, #0x14]
|
|
tst r0, #0x4000
|
|
ldrneh r0, [r4, #0x12]
|
|
addne r0, r0, #8
|
|
strneh r0, [r4, #0x12]
|
|
mov r0, r4
|
|
bl sub_027EBB44
|
|
ldr r0, _027F1104 ; =0x0380FFF4
|
|
sub r2, r4, #0x10
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x188
|
|
add r1, r1, #0x1a0
|
|
bl sub_037F8988
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1104: .word 0x0380FFF4
|
|
arm_func_end sub_027F1094
|
|
|
|
arm_func_start sub_027F1108
|
|
sub_027F1108: ; 0x027F1108
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _027F1190 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x54
|
|
add r4, r0, #0x400
|
|
ldrh r1, [r4, #2]
|
|
add r0, r2, #0x400
|
|
add r1, r1, #1
|
|
strh r1, [r4, #2]
|
|
ldrh r0, [r0, #0x54]
|
|
mov r1, #0
|
|
cmp r0, #0
|
|
ldrne r0, [r4, #8]
|
|
strneh r1, [r0, #4]
|
|
bne _027F1188
|
|
mov r0, #1
|
|
strh r0, [r4]
|
|
ldr r0, [r4, #8]
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #8]
|
|
strh r1, [r0, #4]
|
|
bl sub_027EA578
|
|
ldr r2, [r4, #8]
|
|
ldr r1, _027F1194 ; =0x00003FFF
|
|
strh r0, [r2, #8]
|
|
ldr r0, [r4, #8]
|
|
ldr r2, _027F1198 ; =0x048080A8
|
|
and r0, r0, r1
|
|
mov r0, r0, lsl #0xf
|
|
mov r0, r0, lsr #0x10
|
|
orr r0, r0, #0x8000
|
|
strh r0, [r2]
|
|
_027F1188:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1190: .word 0x0380FFF4
|
|
_027F1194: .word 0x00003FFF
|
|
_027F1198: .word 0x048080A8
|
|
arm_func_end sub_027F1108
|
|
|
|
arm_func_start sub_027F119C
|
|
sub_027F119C: ; 0x027F119C
|
|
ldr r0, _027F11D4 ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r3, [r0]
|
|
rsb r1, r2, #0x4000
|
|
add r0, r3, #0x400
|
|
strh r2, [r0, #0xa4]
|
|
add r0, r3, #0xa4
|
|
ldr r2, [r0, #0x408]
|
|
ldr r0, _027F11D8 ; =0x04808080
|
|
and r1, r2, r1
|
|
mov r1, r1, lsr #1
|
|
orr r1, r1, #0x8000
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_027F11D4: .word 0x0380FFF4
|
|
_027F11D8: .word 0x04808080
|
|
arm_func_end sub_027F119C
|
|
|
|
arm_func_start sub_027F11DC
|
|
sub_027F11DC: ; 0x027F11DC
|
|
ldr r1, _027F11FC ; =0x0380FFF4
|
|
ldr r0, _027F1200 ; =0x04808080
|
|
ldr r2, [r1]
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
add r0, r2, #0x400
|
|
strh r1, [r0, #0xa4]
|
|
bx lr
|
|
.align 2, 0
|
|
_027F11FC: .word 0x0380FFF4
|
|
_027F1200: .word 0x04808080
|
|
arm_func_end sub_027F11DC
|
|
|
|
arm_func_start sub_027F1204
|
|
sub_027F1204: ; 0x027F1204
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r1, _027F1560 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
ldr r8, [r1, #0x4ac]
|
|
add r5, r1, #0x31c
|
|
strh r0, [r8]
|
|
strh r0, [r8, #2]
|
|
strh r0, [r8, #4]
|
|
strh r0, [r8, #6]
|
|
add r6, r1, #0x344
|
|
bl sub_027EA578
|
|
strh r0, [r8, #8]
|
|
mov r0, #0x80
|
|
strh r0, [r8, #0xc]
|
|
mov r0, #0
|
|
add r2, r5, #8
|
|
strh r0, [r8, #0xe]
|
|
ldr r1, _027F1564 ; =0x027F74A4
|
|
add r0, r8, #0x10
|
|
mov r3, r2
|
|
bl sub_027EA130
|
|
mov r1, #0
|
|
strh r1, [r8, #0x22]
|
|
add sl, r8, #0x24
|
|
str r1, [r8, #0x24]
|
|
str r1, [sl, #4]
|
|
ldrh r0, [r6, #0x6e]
|
|
add sb, sl, #0xc
|
|
strh r0, [sl, #8]
|
|
ldrh r0, [r6, #0x7c]
|
|
strh r0, [sl, #0xa]
|
|
ldrh r0, [r5, #0x1e]
|
|
mov r0, r0, lsl #0x1f
|
|
movs r0, r0, lsr #0x1f
|
|
bne _027F1304
|
|
sub r0, sb, sl
|
|
strh r0, [r6, #0x92]
|
|
mov r0, sb
|
|
bl sub_027EAD24
|
|
ldrh r1, [r6, #0x1e]
|
|
add r0, sb, #1
|
|
and r1, r1, #0xff
|
|
add sb, sb, #2
|
|
bl sub_027EAD24
|
|
mov r7, #0
|
|
add r4, r6, #0x20
|
|
b _027F12E0
|
|
_027F12C4:
|
|
add r0, r4, r7
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
mov r0, sb
|
|
bl sub_027EAD24
|
|
add sb, sb, #1
|
|
add r7, r7, #1
|
|
_027F12E0:
|
|
ldrh r0, [r6, #0x1e]
|
|
cmp r7, r0
|
|
blo _027F12C4
|
|
mvn r0, #0
|
|
sub r0, r0, r7
|
|
add r0, sb, r0
|
|
and r1, r7, #0xff
|
|
bl sub_027EAD24
|
|
b _027F1308
|
|
_027F1304:
|
|
strh r1, [r6, #0x92]
|
|
_027F1308:
|
|
mov r0, sb
|
|
bl sub_027F20D0
|
|
add sb, sb, r0
|
|
mov r0, sb
|
|
mov r1, #3
|
|
bl sub_027EAD24
|
|
add r0, sb, #1
|
|
mov r1, #1
|
|
bl sub_027EAD24
|
|
ldrh r1, [r6, #0x7a]
|
|
add r0, sb, #2
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
add r0, sb, #3
|
|
sub r1, r0, sl
|
|
strh r1, [r6, #0x94]
|
|
ldrh r2, [r6, #0x94]
|
|
ldr r1, _027F1568 ; =0x04808084
|
|
add r2, r2, #2
|
|
strh r2, [r1]
|
|
mov r1, #5
|
|
bl sub_027EAD24
|
|
add r0, sb, #4
|
|
mov r1, #5
|
|
bl sub_027EAD24
|
|
add r0, sb, #5
|
|
mov r1, #0
|
|
bl sub_027EAD24
|
|
add r0, sb, #6
|
|
ldrh r1, [r6, #0x74]
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
add r0, sb, #7
|
|
mov r1, #0
|
|
bl sub_027EAD24
|
|
add r0, sb, #8
|
|
mov r1, #0
|
|
bl sub_027EAD24
|
|
add r0, sb, #9
|
|
mov r1, #0
|
|
bl sub_027EAD24
|
|
add r0, sb, #0xa
|
|
sub r1, r0, sl
|
|
strh r1, [r6, #0x96]
|
|
ldrh r2, [r6, #0x96]
|
|
mov r1, #0xdd
|
|
and r2, r2, #1
|
|
strh r2, [r6, #0xa2]
|
|
bl sub_027EAD24
|
|
add r0, sb, #0xb
|
|
ldrh r1, [r6, #0xa0]
|
|
add r1, r1, #8
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
add r0, sb, #0xc
|
|
mov r1, #0
|
|
bl sub_027EAD24
|
|
add r0, sb, #0xd
|
|
mov r1, #9
|
|
bl sub_027EAD24
|
|
add r0, sb, #0xe
|
|
mov r1, #0xbf
|
|
bl sub_027EAD24
|
|
add r0, sb, #0xf
|
|
mov r1, #0
|
|
bl sub_027EAD24
|
|
ldrh r0, [r6, #0xe]
|
|
cmp r0, #1
|
|
bne _027F1448
|
|
ldrh r1, [r5, #0x20]
|
|
add r0, sb, #0x10
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
ldrh r1, [r5, #0x20]
|
|
add r0, sb, #0x11
|
|
mov r1, r1, asr #8
|
|
and r1, r1, #0xff
|
|
add sb, sb, #0x12
|
|
bl sub_027EAD24
|
|
b _027F1464
|
|
_027F1448:
|
|
add r0, sb, #0x10
|
|
mov r1, #0xff
|
|
bl sub_027EAD24
|
|
add r0, sb, #0x11
|
|
mov r1, #0xff
|
|
add sb, sb, #0x12
|
|
bl sub_027EAD24
|
|
_027F1464:
|
|
ldr r1, _027F156C ; =0x0380FFF0
|
|
mov r0, sb
|
|
ldrh r4, [r1]
|
|
and r1, r4, #0xff
|
|
bl sub_027EAD24
|
|
mov r1, r4, lsr #8
|
|
add r0, sb, #1
|
|
and r1, r1, #0xff
|
|
add sb, sb, #2
|
|
bl sub_027EAD24
|
|
ldr r4, [r6, #0x9c]
|
|
mov r5, #0
|
|
b _027F14B8
|
|
_027F1498:
|
|
mov r0, r4
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
mov r0, sb
|
|
bl sub_027EAD24
|
|
add sb, sb, #1
|
|
add r4, r4, #1
|
|
add r5, r5, #1
|
|
_027F14B8:
|
|
ldrh r1, [r6, #0xa0]
|
|
cmp r5, r1
|
|
blo _027F1498
|
|
ldrh r0, [r6, #0xa2]
|
|
cmp r0, #0
|
|
beq _027F1514
|
|
ldr r0, [r6, #0x9c]
|
|
cmp r1, #0
|
|
add r0, r0, r1
|
|
sub r5, r0, #1
|
|
mov r4, #0
|
|
bls _027F1514
|
|
b _027F1508
|
|
_027F14EC:
|
|
mov r0, r5
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
add r0, r5, #1
|
|
bl sub_027EAD24
|
|
add r4, r4, #1
|
|
sub r5, r5, #1
|
|
_027F1508:
|
|
ldrh r0, [r6, #0xa0]
|
|
cmp r4, r0
|
|
blo _027F14EC
|
|
_027F1514:
|
|
ldr r0, _027F1560 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #4
|
|
beq _027F1544
|
|
ldr r1, _027F1570 ; =0x0000B6B8
|
|
add r0, sb, #3
|
|
bic r2, r0, #3
|
|
ldr r0, _027F1574 ; =0x00001D46
|
|
strh r1, [r2]
|
|
strh r0, [r2, #2]
|
|
_027F1544:
|
|
mov r1, #0
|
|
add r0, sb, #0x1c
|
|
strh r1, [r6, #0xa4]
|
|
sub r0, r0, sl
|
|
strh r0, [r8, #0xa]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1560: .word 0x0380FFF4
|
|
_027F1564: .word 0x027F74A4
|
|
_027F1568: .word 0x04808084
|
|
_027F156C: .word 0x0380FFF0
|
|
_027F1570: .word 0x0000B6B8
|
|
_027F1574: .word 0x00001D46
|
|
arm_func_end sub_027F1204
|
|
|
|
arm_func_start sub_027F1578
|
|
sub_027F1578: ; 0x027F1578
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _027F1664 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r4, r0, #0x344
|
|
ldr r1, [r0, #0x4ac]
|
|
ldrh r2, [r4, #0xa0]
|
|
ldrh r0, [r4, #0x96]
|
|
add r1, r1, #0x24
|
|
cmp r2, #0
|
|
add r5, r1, r0
|
|
beq _027F15E8
|
|
ldrh r0, [r4, #0xa2]
|
|
ldr r1, [r4, #0x9c]
|
|
tst r0, #1
|
|
add r0, r5, #0xa
|
|
beq _027F15E0
|
|
sub r0, r0, #1
|
|
add r2, r2, #2
|
|
bl sub_027EAC7C
|
|
ldr r1, _027F1668 ; =0x0380FFF0
|
|
add r0, r5, #9
|
|
ldrh r1, [r1]
|
|
mov r1, r1, asr #8
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
b _027F15E8
|
|
_027F15E0:
|
|
add r2, r2, #1
|
|
bl sub_027EAC7C
|
|
_027F15E8:
|
|
ldr r0, _027F1664 ; =0x0380FFF4
|
|
ldrh r2, [r4, #0x96]
|
|
ldr r0, [r0]
|
|
ldrh r1, [r4, #0xa0]
|
|
add r2, r2, #0x26
|
|
ldr r0, [r0, #0x4ac]
|
|
add r1, r2, r1
|
|
strh r1, [r0, #0xa]
|
|
ldrh r1, [r4, #0xa0]
|
|
add r0, r5, #1
|
|
add r1, r1, #8
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
ldr r0, _027F1664 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #4
|
|
beq _027F1654
|
|
ldrh r0, [r4, #0xa0]
|
|
add r1, r5, #0xd
|
|
add r0, r1, r0
|
|
ldr r1, _027F166C ; =0x0000B6B8
|
|
bic r2, r0, #3
|
|
ldr r0, _027F1670 ; =0x00001D46
|
|
strh r1, [r2]
|
|
strh r0, [r2, #2]
|
|
_027F1654:
|
|
mov r0, #0
|
|
strh r0, [r4, #0xa4]
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1664: .word 0x0380FFF4
|
|
_027F1668: .word 0x0380FFF0
|
|
_027F166C: .word 0x0000B6B8
|
|
_027F1670: .word 0x00001D46
|
|
arm_func_end sub_027F1578
|
|
|
|
arm_func_start sub_027F1674
|
|
sub_027F1674: ; 0x027F1674
|
|
ldr r0, _027F16A0 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r1, r0, #0x500
|
|
add r0, r0, #0x100
|
|
ldrh r1, [r1, #0x38]
|
|
ldrh r2, [r0, #0xa8]
|
|
rsb r0, r1, #0x18
|
|
cmp r2, r0
|
|
movlt r0, #1
|
|
movge r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_027F16A0: .word 0x0380FFF4
|
|
arm_func_end sub_027F1674
|
|
|
|
arm_func_start sub_027F16A4
|
|
sub_027F16A4: ; 0x027F16A4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _027F1718 ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r1, [r2]
|
|
mov r6, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x36
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
bne _027F16DC
|
|
mov r0, #2
|
|
bl sub_027EB06C
|
|
mov r0, r4
|
|
b _027F1710
|
|
_027F16DC:
|
|
ldr r0, _027F171C ; =0x0000FFFF
|
|
mov r1, r6
|
|
strh r0, [r4, #0xc]
|
|
add r0, r4, #0x10
|
|
bl sub_027F1FA8
|
|
strh r5, [r4, #0x3c]
|
|
mov r0, #2
|
|
strh r0, [r4, #0x16]
|
|
add r0, r0, #0x1c
|
|
strh r0, [r4, #0x22]
|
|
mov r0, #0xa0
|
|
strh r0, [r4, #0x24]
|
|
add r0, r4, #0x10
|
|
_027F1710:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1718: .word 0x0380FFF4
|
|
_027F171C: .word 0x0000FFFF
|
|
arm_func_end sub_027F16A4
|
|
|
|
arm_func_start sub_027F1720
|
|
sub_027F1720: ; 0x027F1720
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _027F17C0 ; =0x0380FFF4
|
|
mov r6, r0
|
|
ldr r2, [r1]
|
|
mov r1, #0x5e
|
|
add r0, r2, #0x188
|
|
add r5, r2, #0x344
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
bne _027F1758
|
|
mov r0, #2
|
|
bl sub_027EB06C
|
|
mov r0, r4
|
|
b _027F17B8
|
|
_027F1758:
|
|
ldr r0, _027F17C4 ; =0x0000FFFF
|
|
mov r1, r6
|
|
strh r0, [r4, #0xc]
|
|
add r0, r4, #0x10
|
|
bl sub_027F1FA8
|
|
ldrh r1, [r5, #0x7c]
|
|
add r0, r4, #0x40
|
|
strh r1, [r4, #0x3c]
|
|
ldrh r1, [r5, #0x70]
|
|
strh r1, [r4, #0x3e]
|
|
bl sub_027F205C
|
|
mov r5, r0
|
|
add r0, r4, #0x40
|
|
add r0, r0, r5
|
|
bl sub_027F20D0
|
|
add r0, r5, r0
|
|
add r0, r0, #4
|
|
strh r0, [r4, #0x16]
|
|
ldrh r1, [r4, #0x16]
|
|
mov r0, #0
|
|
add r1, r1, #0x1c
|
|
strh r1, [r4, #0x22]
|
|
strh r0, [r4, #0x24]
|
|
add r0, r4, #0x10
|
|
_027F17B8:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F17C0: .word 0x0380FFF4
|
|
_027F17C4: .word 0x0000FFFF
|
|
arm_func_end sub_027F1720
|
|
|
|
arm_func_start sub_027F17C8
|
|
sub_027F17C8: ; 0x027F17C8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _027F1874 ; =0x0380FFF4
|
|
mov r6, r0
|
|
ldr r2, [r1]
|
|
mov r1, #0x64
|
|
add r0, r2, #0x188
|
|
add r5, r2, #0x344
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
bne _027F1800
|
|
mov r0, #2
|
|
bl sub_027EB06C
|
|
mov r0, r4
|
|
b _027F186C
|
|
_027F1800:
|
|
ldr r0, _027F1878 ; =0x0000FFFF
|
|
mov r1, r6
|
|
strh r0, [r4, #0xc]
|
|
add r0, r4, #0x10
|
|
bl sub_027F1FA8
|
|
ldrh r1, [r5, #0x7c]
|
|
add r0, r4, #0x40
|
|
strh r1, [r4, #0x3c]
|
|
ldrh r2, [r5, #0x70]
|
|
add r1, r5, #0x82
|
|
strh r2, [r4, #0x3e]
|
|
bl sub_027EA0E0
|
|
add r0, r4, #0x46
|
|
bl sub_027F205C
|
|
mov r5, r0
|
|
add r0, r4, #0x46
|
|
add r0, r0, r5
|
|
bl sub_027F20D0
|
|
add r0, r5, r0
|
|
add r0, r0, #0xa
|
|
strh r0, [r4, #0x16]
|
|
ldrh r1, [r4, #0x16]
|
|
mov r0, #0x20
|
|
add r1, r1, #0x1c
|
|
strh r1, [r4, #0x22]
|
|
strh r0, [r4, #0x24]
|
|
add r0, r4, #0x10
|
|
_027F186C:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1874: .word 0x0380FFF4
|
|
_027F1878: .word 0x0000FFFF
|
|
arm_func_end sub_027F17C8
|
|
|
|
arm_func_start sub_027F187C
|
|
sub_027F187C: ; 0x027F187C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r3, _027F19E8 ; =0x0380FFF4
|
|
mov r7, r1
|
|
ldr r1, [r3]
|
|
mov r8, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x60
|
|
mov r6, r2
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
bne _027F18B8
|
|
mov r0, #2
|
|
bl sub_027EB06C
|
|
mov r0, r4
|
|
b _027F19E0
|
|
_027F18B8:
|
|
ldr r0, _027F19EC ; =0x0000FFFF
|
|
cmp r7, #0
|
|
strh r0, [r4, #0xc]
|
|
bne _027F18DC
|
|
mov r0, r8
|
|
bl sub_027EBEB0
|
|
movs r5, r0
|
|
moveq r7, #0x13
|
|
b _027F18E0
|
|
_027F18DC:
|
|
mov r5, #0
|
|
_027F18E0:
|
|
mov r0, r8
|
|
bl sub_027EC040
|
|
mov r1, r0
|
|
add r0, r4, #0x10
|
|
bl sub_027F1FA8
|
|
ldr r0, _027F19E8 ; =0x0380FFF4
|
|
cmp r5, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0xc0]
|
|
strh r0, [r4, #0x3c]
|
|
strh r7, [r4, #0x3e]
|
|
strh r5, [r4, #0x40]
|
|
ldrneh r0, [r4, #0x40]
|
|
orrne r0, r0, #0xc000
|
|
strneh r0, [r4, #0x40]
|
|
add r0, r4, #0x42
|
|
bl sub_027F20D0
|
|
add r0, r0, #6
|
|
strh r0, [r4, #0x16]
|
|
ldrh r1, [r4, #0x16]
|
|
mov r0, #0x10
|
|
add r1, r1, #0x1c
|
|
strh r1, [r4, #0x22]
|
|
strh r0, [r4, #0x24]
|
|
ldrh r0, [r4, #0x22]
|
|
add r1, r4, #0x24
|
|
cmp r6, #0
|
|
add r8, r1, r0
|
|
beq _027F19C4
|
|
add r0, r6, #1
|
|
bl sub_027EAD50
|
|
mov sb, r0
|
|
mov r0, r6
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
mov r0, r8
|
|
bl sub_027EAD24
|
|
add r0, r8, #1
|
|
and r1, sb, #0xff
|
|
add r8, r8, #2
|
|
bl sub_027EAD24
|
|
cmp sb, #0
|
|
mov r7, #0
|
|
bls _027F19DC
|
|
add r5, r6, #2
|
|
b _027F19B8
|
|
_027F199C:
|
|
add r0, r5, r7
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
mov r0, r8
|
|
bl sub_027EAD24
|
|
add r7, r7, #1
|
|
add r8, r8, #1
|
|
_027F19B8:
|
|
cmp r7, sb
|
|
blo _027F199C
|
|
b _027F19DC
|
|
_027F19C4:
|
|
mov r0, r8
|
|
mov r1, #0
|
|
bl sub_027EAD24
|
|
add r0, r8, #1
|
|
mov r1, #0
|
|
bl sub_027EAD24
|
|
_027F19DC:
|
|
add r0, r4, #0x10
|
|
_027F19E0:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F19E8: .word 0x0380FFF4
|
|
_027F19EC: .word 0x0000FFFF
|
|
arm_func_end sub_027F187C
|
|
|
|
arm_func_start sub_027F19F0
|
|
sub_027F19F0: ; 0x027F19F0
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r3, _027F1B48 ; =0x0380FFF4
|
|
mov r6, r1
|
|
ldr r1, [r3]
|
|
mov r8, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x60
|
|
mov r5, r2
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
bne _027F1A2C
|
|
mov r0, #2
|
|
bl sub_027EB06C
|
|
mov r0, r4
|
|
b _027F1B40
|
|
_027F1A2C:
|
|
ldr r0, _027F1B4C ; =0x0000FFFF
|
|
cmp r6, #0
|
|
strh r0, [r4, #0xc]
|
|
bne _027F1A50
|
|
mov r0, r8
|
|
bl sub_027EBEB0
|
|
movs r7, r0
|
|
moveq r6, #0x13
|
|
b _027F1A54
|
|
_027F1A50:
|
|
mov r7, #0
|
|
_027F1A54:
|
|
mov r0, r8
|
|
bl sub_027EC040
|
|
mov r1, r0
|
|
add r0, r4, #0x10
|
|
bl sub_027F1FA8
|
|
ldr r0, _027F1B48 ; =0x0380FFF4
|
|
orr r2, r7, #0xc000
|
|
ldr r1, [r0]
|
|
add r0, r4, #0x42
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0xc0]
|
|
strh r1, [r4, #0x3c]
|
|
strh r6, [r4, #0x3e]
|
|
strh r2, [r4, #0x40]
|
|
bl sub_027F20D0
|
|
add r0, r0, #6
|
|
strh r0, [r4, #0x16]
|
|
ldrh r1, [r4, #0x16]
|
|
mov r0, #0x30
|
|
add r1, r1, #0x1c
|
|
strh r1, [r4, #0x22]
|
|
strh r0, [r4, #0x24]
|
|
ldrh r0, [r4, #0x22]
|
|
add r1, r4, #0x24
|
|
cmp r5, #0
|
|
add r7, r1, r0
|
|
beq _027F1B24
|
|
add r0, r5, #1
|
|
bl sub_027EAD50
|
|
mov r8, r0
|
|
mov r0, r5
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
mov r0, r7
|
|
bl sub_027EAD24
|
|
add r0, r7, #1
|
|
and r1, r8, #0xff
|
|
bl sub_027EAD24
|
|
add r7, r7, #2
|
|
mov r6, #0
|
|
add r5, r5, #2
|
|
b _027F1B18
|
|
_027F1AFC:
|
|
add r0, r5, r6
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
mov r0, r7
|
|
bl sub_027EAD24
|
|
add r7, r7, #1
|
|
add r6, r6, #1
|
|
_027F1B18:
|
|
cmp r6, r8
|
|
blo _027F1AFC
|
|
b _027F1B3C
|
|
_027F1B24:
|
|
mov r0, r7
|
|
mov r1, #0
|
|
bl sub_027EAD24
|
|
add r0, r7, #1
|
|
mov r1, #0
|
|
bl sub_027EAD24
|
|
_027F1B3C:
|
|
add r0, r4, #0x10
|
|
_027F1B40:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1B48: .word 0x0380FFF4
|
|
_027F1B4C: .word 0x0000FFFF
|
|
arm_func_end sub_027F19F0
|
|
|
|
arm_func_start sub_027F1B50
|
|
sub_027F1B50: ; 0x027F1B50
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _027F1BD4 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
mov r1, #0x5a
|
|
add r0, r0, #0x188
|
|
bl sub_037F886C
|
|
movs r5, r0
|
|
bne _027F1B84
|
|
mov r0, #2
|
|
bl sub_027EB06C
|
|
mov r0, r5
|
|
b _027F1BCC
|
|
_027F1B84:
|
|
ldr r2, _027F1BD8 ; =0x0000FFFF
|
|
mov r1, r4
|
|
add r0, r5, #0x10
|
|
strh r2, [r5, #0xc]
|
|
bl sub_027F1FA8
|
|
add r0, r5, #0x3c
|
|
bl sub_027F205C
|
|
mov r4, r0
|
|
add r0, r5, #0x3c
|
|
add r0, r0, r4
|
|
bl sub_027F20D0
|
|
add r0, r4, r0
|
|
strh r0, [r5, #0x16]
|
|
add r0, r0, #0x1c
|
|
strh r0, [r5, #0x22]
|
|
mov r0, #0x40
|
|
strh r0, [r5, #0x24]
|
|
add r0, r5, #0x10
|
|
_027F1BCC:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1BD4: .word 0x0380FFF4
|
|
_027F1BD8: .word 0x0000FFFF
|
|
arm_func_end sub_027F1B50
|
|
|
|
arm_func_start sub_027F1BDC
|
|
sub_027F1BDC: ; 0x027F1BDC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r1, _027F1DF0 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
add r4, r0, #0x344
|
|
bl sub_027F1674
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _027F1DE8
|
|
ldr r1, _027F1DF0 ; =0x0380FFF4
|
|
ldrh r0, [r4, #0xa0]
|
|
ldr r2, [r1]
|
|
add r1, r0, #0x78
|
|
add r0, r2, #0x188
|
|
bl sub_037F886C
|
|
movs r6, r0
|
|
bne _027F1C30
|
|
mov r0, #2
|
|
bl sub_027EB06C
|
|
mov r0, r6
|
|
b _027F1DE8
|
|
_027F1C30:
|
|
ldr r0, _027F1DF4 ; =0x0000FFFF
|
|
mov r1, r5
|
|
strh r0, [r6, #0xc]
|
|
add r0, r6, #0x10
|
|
bl sub_027F1FA8
|
|
ldrh r1, [r4, #0x6e]
|
|
add r0, r6, #0x48
|
|
strh r1, [r6, #0x44]
|
|
ldrh r1, [r4, #0x7c]
|
|
strh r1, [r6, #0x46]
|
|
bl sub_027F205C
|
|
mov r4, r0
|
|
add r0, r6, #0x48
|
|
add r0, r0, r4
|
|
bl sub_027F20D0
|
|
add r7, r4, r0
|
|
add r0, r6, #0x48
|
|
add r4, r0, r7
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_027EAD24
|
|
add r0, r4, #1
|
|
mov r1, #1
|
|
bl sub_027EAD24
|
|
ldr r1, _027F1DF0 ; =0x0380FFF4
|
|
add r0, r4, #2
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0xbe]
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
ldr r0, _027F1DF0 ; =0x0380FFF4
|
|
add r7, r7, #3
|
|
ldr r1, [r0]
|
|
add r0, r6, #0x48
|
|
add r5, r0, r7
|
|
add r4, r1, #0x344
|
|
add r8, r1, #0x31c
|
|
mov r0, r5
|
|
mov r1, #0xdd
|
|
mov sl, #0
|
|
bl sub_027EAD24
|
|
ldr r1, _027F1DF0 ; =0x0380FFF4
|
|
add r0, r5, #1
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0xe4]
|
|
add r1, r1, #8
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
add r0, r5, #2
|
|
mov r1, sl
|
|
bl sub_027EAD24
|
|
add r0, r5, #3
|
|
mov r1, #9
|
|
bl sub_027EAD24
|
|
add r0, r5, #4
|
|
mov r1, #0xbf
|
|
bl sub_027EAD24
|
|
add r0, r5, #5
|
|
mov r1, sl
|
|
bl sub_027EAD24
|
|
ldrh r1, [r8, #0x20]
|
|
add r0, r5, #6
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
ldrh r1, [r8, #0x20]
|
|
add r0, r5, #7
|
|
mov r1, r1, asr #8
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
ldr r1, _027F1DF8 ; =0x0380FFF0
|
|
add r0, r5, #8
|
|
ldrh r8, [r1]
|
|
and r1, r8, #0xff
|
|
bl sub_027EAD24
|
|
mov r1, r8, lsr #8
|
|
add r0, r5, #9
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
ldrh r0, [r4, #0xa0]
|
|
add sl, sl, #0xa
|
|
cmp r0, #0
|
|
beq _027F1DC4
|
|
ldrh r0, [r4, #0xa2]
|
|
ldr r8, [r4, #0x9c]
|
|
tst r0, #1
|
|
addne r8, r8, #1
|
|
mov sb, #0
|
|
b _027F1DB8
|
|
_027F1D98:
|
|
mov r0, r8
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
add r0, r5, sl
|
|
bl sub_027EAD24
|
|
add sl, sl, #1
|
|
add r8, r8, #1
|
|
add sb, sb, #1
|
|
_027F1DB8:
|
|
ldrh r0, [r4, #0xa0]
|
|
cmp sb, r0
|
|
blo _027F1D98
|
|
_027F1DC4:
|
|
add r0, r7, sl
|
|
add r0, r0, #0xc
|
|
strh r0, [r6, #0x16]
|
|
ldrh r1, [r6, #0x16]
|
|
mov r0, #0x50
|
|
add r1, r1, #0x1c
|
|
strh r1, [r6, #0x22]
|
|
strh r0, [r6, #0x24]
|
|
add r0, r6, #0x10
|
|
_027F1DE8:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1DF0: .word 0x0380FFF4
|
|
_027F1DF4: .word 0x0000FFFF
|
|
_027F1DF8: .word 0x0380FFF0
|
|
arm_func_end sub_027F1BDC
|
|
|
|
arm_func_start sub_027F1DFC
|
|
sub_027F1DFC: ; 0x027F1DFC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r1
|
|
cmp r2, #0
|
|
beq _027F1E20
|
|
bl sub_027F1674
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _027F1EAC
|
|
_027F1E20:
|
|
ldr r0, _027F1EB4 ; =0x0380FFF4
|
|
add r1, r5, #0x3d
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
bne _027F1E4C
|
|
mov r0, #2
|
|
bl sub_027EB06C
|
|
mov r0, r4
|
|
b _027F1EAC
|
|
_027F1E4C:
|
|
ldr r2, _027F1EB8 ; =0x0000FFFF
|
|
mov r1, r6
|
|
add r0, r4, #0x10
|
|
strh r2, [r4, #0xc]
|
|
bl sub_027F1FA8
|
|
cmp r5, #0
|
|
beq _027F1E8C
|
|
add r0, r4, #0x42
|
|
mov r1, #0x10
|
|
bl sub_027EAD24
|
|
add r0, r4, #0x43
|
|
and r1, r5, #0xff
|
|
bl sub_027EAD24
|
|
add r0, r5, #2
|
|
mov r0, r0, lsl #0x10
|
|
mov r5, r0, lsr #0x10
|
|
_027F1E8C:
|
|
add r0, r5, #6
|
|
strh r0, [r4, #0x16]
|
|
ldrh r1, [r4, #0x16]
|
|
mov r0, #0xb0
|
|
add r1, r1, #0x1c
|
|
strh r1, [r4, #0x22]
|
|
strh r0, [r4, #0x24]
|
|
add r0, r4, #0x10
|
|
_027F1EAC:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1EB4: .word 0x0380FFF4
|
|
_027F1EB8: .word 0x0000FFFF
|
|
arm_func_end sub_027F1DFC
|
|
|
|
arm_func_start sub_027F1EBC
|
|
sub_027F1EBC: ; 0x027F1EBC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r1
|
|
cmp r2, #0
|
|
beq _027F1EE0
|
|
bl sub_027F1674
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _027F1F40
|
|
_027F1EE0:
|
|
ldr r0, _027F1F48 ; =0x0380FFF4
|
|
mov r1, #0x36
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
bne _027F1F0C
|
|
mov r0, #2
|
|
bl sub_027EB06C
|
|
mov r0, r4
|
|
b _027F1F40
|
|
_027F1F0C:
|
|
ldr r0, _027F1F4C ; =0x0000FFFF
|
|
mov r1, r6
|
|
strh r0, [r4, #0xc]
|
|
add r0, r4, #0x10
|
|
bl sub_027F1FA8
|
|
strh r5, [r4, #0x3c]
|
|
mov r0, #2
|
|
strh r0, [r4, #0x16]
|
|
add r0, r0, #0x1c
|
|
strh r0, [r4, #0x22]
|
|
mov r0, #0xc0
|
|
strh r0, [r4, #0x24]
|
|
add r0, r4, #0x10
|
|
_027F1F40:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1F48: .word 0x0380FFF4
|
|
_027F1F4C: .word 0x0000FFFF
|
|
arm_func_end sub_027F1EBC
|
|
|
|
arm_func_start sub_027F1F50
|
|
sub_027F1F50: ; 0x027F1F50
|
|
stmdb sp!, {r3, lr}
|
|
ldr ip, _027F1FA4 ; =0x0380FFF4
|
|
mov r2, #0
|
|
ldr r3, [ip]
|
|
mov r1, #0x14
|
|
ldr r3, [r3, #0x45c]
|
|
orr r0, r0, #0xc000
|
|
strh r2, [r3]
|
|
strh r2, [r3, #2]
|
|
strh r2, [r3, #4]
|
|
strh r1, [r3, #0xa]
|
|
mov r1, #0xa4
|
|
strh r1, [r3, #0xc]
|
|
strh r0, [r3, #0xe]
|
|
ldr r2, [ip]
|
|
add r0, r3, #0x10
|
|
add r1, r2, #0x3a8
|
|
add r2, r2, #0x324
|
|
bl sub_027EA0FC
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1FA4: .word 0x0380FFF4
|
|
arm_func_end sub_027F1F50
|
|
|
|
arm_func_start sub_027F1FA8
|
|
sub_027F1FA8: ; 0x027F1FA8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
mov r1, r5
|
|
mov r0, #0
|
|
mov r2, #0x2c
|
|
bl sub_037FDF74
|
|
bl sub_027EA578
|
|
strh r0, [r5, #0x10]
|
|
ldr r0, _027F1FF0 ; =0x0380FFF4
|
|
mov r1, r4
|
|
ldr r3, [r0]
|
|
add r0, r5, #0x18
|
|
add r2, r3, #0x324
|
|
add r3, r3, #0x3a8
|
|
bl sub_027EA130
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F1FF0: .word 0x0380FFF4
|
|
arm_func_end sub_027F1FA8
|
|
|
|
arm_func_start sub_027F1FF4
|
|
sub_027F1FF4: ; 0x027F1FF4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r2, _027F2058 ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r0, [r2]
|
|
mov r6, r1
|
|
ldr r5, [r0, #0x1a0]
|
|
mvn r4, #0
|
|
b _027F2044
|
|
_027F2014:
|
|
ldrh r0, [r5, #0x24]
|
|
cmp r0, r6
|
|
bne _027F2038
|
|
mov r1, r7
|
|
add r0, r5, #0x28
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
bne _027F2050
|
|
_027F2038:
|
|
mov r0, r5
|
|
bl sub_037F8A80
|
|
mov r5, r0
|
|
_027F2044:
|
|
cmp r5, r4
|
|
bne _027F2014
|
|
mov r0, #0
|
|
_027F2050:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F2058: .word 0x0380FFF4
|
|
arm_func_end sub_027F1FF4
|
|
|
|
arm_func_start sub_027F205C
|
|
sub_027F205C: ; 0x027F205C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r1, _027F20CC ; =0x0380FFF4
|
|
mov r5, #0
|
|
ldr r1, [r1]
|
|
mov r8, r0
|
|
add r4, r1, #0x344
|
|
ldrh r6, [r4, #0x1e]
|
|
mov r1, r5
|
|
bl sub_027EAD24
|
|
add r0, r8, #1
|
|
and r1, r6, #0xff
|
|
bl sub_027EAD24
|
|
add r5, r5, #2
|
|
mov r7, #0
|
|
add r4, r4, #0x20
|
|
b _027F20B8
|
|
_027F209C:
|
|
add r0, r4, r7
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
add r0, r8, r5
|
|
bl sub_027EAD24
|
|
add r5, r5, #1
|
|
add r7, r7, #1
|
|
_027F20B8:
|
|
cmp r7, r6
|
|
blo _027F209C
|
|
mov r0, r5
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F20CC: .word 0x0380FFF4
|
|
arm_func_end sub_027F205C
|
|
|
|
arm_func_start sub_027F20D0
|
|
sub_027F20D0: ; 0x027F20D0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r2, _027F216C ; =0x0380FFF4
|
|
mov r1, #1
|
|
ldr r2, [r2]
|
|
mov sb, r0
|
|
add r6, r2, #0x344
|
|
mov r7, #0
|
|
bl sub_027EAD24
|
|
ldr r4, _027F2170 ; =0x027F74C4
|
|
add r7, r7, #2
|
|
mov r8, #0
|
|
mov r5, #1
|
|
_027F2100:
|
|
ldrh r0, [r6, #0x62]
|
|
tst r0, r5, lsl r8
|
|
beq _027F2144
|
|
ldrh r0, [r6, #0x60]
|
|
tst r0, r5, lsl r8
|
|
mov r0, r8, lsl #1
|
|
ldrh r1, [r4, r0]
|
|
beq _027F2134
|
|
orr r1, r1, #0x80
|
|
add r0, sb, r7
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
b _027F2140
|
|
_027F2134:
|
|
add r0, sb, r7
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
_027F2140:
|
|
add r7, r7, #1
|
|
_027F2144:
|
|
add r8, r8, #1
|
|
cmp r8, #0x10
|
|
blo _027F2100
|
|
sub r1, r7, #2
|
|
add r0, sb, #1
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
mov r0, r7
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F216C: .word 0x0380FFF4
|
|
_027F2170: .word 0x027F74C4
|
|
arm_func_end sub_027F20D0
|
|
|
|
arm_func_start sub_027F2174
|
|
sub_027F2174: ; 0x027F2174
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r1, _027F2440 ; =0x0380FFF4
|
|
mvn r0, #0
|
|
ldr r4, [r1]
|
|
add r7, r4, #0x17c
|
|
ldr r5, [r7, #0x48]
|
|
add r6, r4, #0x344
|
|
cmp r5, r0
|
|
beq _027F2438
|
|
ldrh r0, [r6, #8]
|
|
cmp r0, #0x40
|
|
beq _027F21B4
|
|
mov r1, r5
|
|
add r0, r7, #0x48
|
|
bl sub_037F8908
|
|
b _027F2438
|
|
_027F21B4:
|
|
ldrh r0, [r5, #0x24]
|
|
mov r0, r0, lsl #0x17
|
|
movs r0, r0, lsr #0x1f
|
|
beq _027F21CC
|
|
ldrh r0, [r5, #0x34]
|
|
b _027F21D0
|
|
_027F21CC:
|
|
ldrh r0, [r5, #0x28]
|
|
_027F21D0:
|
|
tst r0, #1
|
|
ldrne r0, [r4, #0x568]
|
|
mov sb, #1
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x568]
|
|
ldreq r0, [r4, #0x564]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x564]
|
|
ldrh r0, [r5, #0x18]
|
|
ldr r2, [r4, #0x560]
|
|
and r1, r0, #0xf0
|
|
mov r0, r1, asr #3
|
|
add r0, r1, r0, lsr #28
|
|
mov r0, r0, asr #4
|
|
sub r0, r0, #1
|
|
add r0, r2, r0
|
|
str r0, [r4, #0x560]
|
|
ldrh r2, [r6, #0xc]
|
|
cmp r2, #1
|
|
beq _027F2230
|
|
cmp r2, #2
|
|
cmpne r2, #3
|
|
beq _027F230C
|
|
b _027F23AC
|
|
_027F2230:
|
|
ldrh r0, [r5, #0x24]
|
|
tst r0, #1
|
|
bne _027F23AC
|
|
add r0, r5, #0x2e
|
|
bl sub_027EB900
|
|
mov r8, r0
|
|
cmp r8, #0xff
|
|
beq _027F225C
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x40
|
|
beq _027F22C0
|
|
_027F225C:
|
|
mov r0, r8
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x30
|
|
add r0, r5, #0x2e
|
|
bne _027F2290
|
|
mov r1, #0xa0
|
|
bl sub_027F1FF4
|
|
cmp r0, #0
|
|
bne _027F23AC
|
|
add r0, r5, #0x2e
|
|
mov r1, #7
|
|
bl sub_027F16A4
|
|
b _027F22B0
|
|
_027F2290:
|
|
mov r1, #0xc0
|
|
bl sub_027F1FF4
|
|
cmp r0, #0
|
|
bne _027F23AC
|
|
add r0, r5, #0x2e
|
|
mov r1, #7
|
|
mov r2, #1
|
|
bl sub_027F1EBC
|
|
_027F22B0:
|
|
cmp r0, #0
|
|
beq _027F23AC
|
|
bl sub_027F107C
|
|
b _027F23AC
|
|
_027F22C0:
|
|
ldrh r1, [r5, #0x24]
|
|
mov r0, r8, lsl #0x10
|
|
mov r1, r1, lsl #0x13
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, r1, lsr #0x1f
|
|
bl sub_027EBD4C
|
|
mov r0, r8
|
|
bl sub_027EC080
|
|
ldrh r1, [r5, #0x3a]
|
|
cmp r1, r0
|
|
ldreq r0, [r4, #0x578]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x578]
|
|
beq _027F23AC
|
|
add r0, r5, #0x28
|
|
add r1, r5, #0x34
|
|
bl sub_027EA0E0
|
|
mov sb, #0
|
|
b _027F23AC
|
|
_027F230C:
|
|
ldrh r1, [r5, #0x24]
|
|
tst r1, #1
|
|
bne _027F23AC
|
|
ldrh r0, [r6, #0xe]
|
|
cmp r0, #0
|
|
beq _027F2378
|
|
tst r1, #0x2000
|
|
bne _027F2378
|
|
ldrh r0, [r5, #0x28]
|
|
tst r0, #1
|
|
ldrneh r0, [r6, #0x8e]
|
|
bicne r0, r0, #1
|
|
strneh r0, [r6, #0x8e]
|
|
bne _027F2354
|
|
cmp r2, #3
|
|
ldrneh r0, [r6, #0x8e]
|
|
bicne r0, r0, #2
|
|
strneh r0, [r6, #0x8e]
|
|
_027F2354:
|
|
ldrh r0, [r6, #0x8e]
|
|
cmp r0, #0
|
|
ldreqh r0, [r7, #0x20]
|
|
cmpeq r0, #0
|
|
ldreqh r0, [r7, #0x2c]
|
|
cmpeq r0, #0
|
|
bne _027F2378
|
|
mov r0, #1
|
|
bl sub_027E9CB4
|
|
_027F2378:
|
|
ldrh r8, [r6, #0x88]
|
|
mov r0, r8
|
|
bl sub_027EC080
|
|
ldrh r1, [r5, #0x3a]
|
|
cmp r1, r0
|
|
ldreq r0, [r4, #0x578]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x578]
|
|
beq _027F23AC
|
|
add r0, r5, #0x2e
|
|
add r1, r5, #0x34
|
|
bl sub_027EA0E0
|
|
mov sb, #0
|
|
_027F23AC:
|
|
cmp sb, #0
|
|
bne _027F2414
|
|
mov r0, r8, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
strh r0, [r5, #0x12]
|
|
ldrh r1, [r5, #0x22]
|
|
and r1, r1, #0xff
|
|
bl sub_027EBD2C
|
|
ldrh r1, [r5, #0x3a]
|
|
mov r0, r8
|
|
bl sub_027EBE4C
|
|
mov r0, r8
|
|
bl sub_027EBE8C
|
|
ldrh r1, [r5, #0x20]
|
|
mov r0, #0x180
|
|
sub r1, r1, #0x18
|
|
strh r1, [r5, #0x16]
|
|
strh r0, [r5, #0xc]
|
|
ldrh r0, [r5, #0x16]
|
|
mov r1, r5
|
|
add r0, r0, #0x2d
|
|
mov r2, r0, lsr #1
|
|
add r0, r7, #0x48
|
|
strh r2, [r5, #0xe]
|
|
bl sub_037F8D58
|
|
b _027F2420
|
|
_027F2414:
|
|
mov r1, r5
|
|
add r0, r7, #0x48
|
|
bl sub_037F8908
|
|
_027F2420:
|
|
ldrh r0, [r7, #0x50]
|
|
cmp r0, #0
|
|
beq _027F2438
|
|
mov r0, #2
|
|
mov r1, #6
|
|
bl sub_037F8598
|
|
_027F2438:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F2440: .word 0x0380FFF4
|
|
arm_func_end sub_027F2174
|
|
|
|
arm_func_start sub_027F2444
|
|
sub_027F2444: ; 0x027F2444
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _027F25B0 ; =0x0380FFF4
|
|
mov r6, r0
|
|
ldr r0, [r1]
|
|
add r4, r0, #0x344
|
|
ldrh r1, [r4, #8]
|
|
add r0, r0, #0xdc
|
|
cmp r1, #0x40
|
|
add r5, r0, #0x400
|
|
movne r0, #1
|
|
bne _027F25A8
|
|
add r0, r6, #0x1e
|
|
add r1, r4, #0x64
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
beq _027F2498
|
|
add r0, r6, #0x24
|
|
add r1, r4, #0x82
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
bne _027F24A0
|
|
_027F2498:
|
|
mov r0, #1
|
|
b _027F25A8
|
|
_027F24A0:
|
|
ldrh r0, [r4, #0x6a]
|
|
mov r1, #1
|
|
mov r0, r1, lsl r0
|
|
ldrh r1, [r6, #0x2e]
|
|
mov r0, r0, lsl #0x10
|
|
tst r1, r0, lsr #16
|
|
moveq r0, #0
|
|
movne r0, #0x2000
|
|
strh r0, [r5, #6]
|
|
ldr r0, _027F25B4 ; =0x04808098
|
|
ldrh r0, [r0]
|
|
tst r0, #0x8000
|
|
beq _027F24F8
|
|
mov r0, r0, lsl #0x11
|
|
mov r0, r0, lsr #0x10
|
|
add r0, r0, #0x4800000
|
|
add r0, r0, #0x4000
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, #0
|
|
ldrneh r0, [r5, #6]
|
|
orrne r0, r0, #0x4000
|
|
strneh r0, [r5, #6]
|
|
_027F24F8:
|
|
ldrh r0, [r4, #0x88]
|
|
bl sub_027EBE8C
|
|
ldrh r1, [r6, #0x10]
|
|
ldr r0, _027F25B8 ; =0x00000182
|
|
sub r1, r1, #0x1c
|
|
strh r1, [r6, #6]
|
|
sub r1, r6, #0x10
|
|
strh r0, [r1, #0xc]
|
|
ldrh r2, [r6, #6]
|
|
mov r0, #0
|
|
add r2, r2, #0x31
|
|
mov r2, r2, lsr #1
|
|
strh r2, [r1, #0xe]
|
|
ldrh r2, [r1, #0x3e]
|
|
b _027F2544
|
|
_027F2534:
|
|
tst r2, #1
|
|
mov r2, r2, lsl #0xf
|
|
addne r0, r0, #1
|
|
mov r2, r2, lsr #0x10
|
|
_027F2544:
|
|
cmp r2, #0
|
|
bne _027F2534
|
|
ldr r2, _027F25BC ; =0x04808094
|
|
ldrh r3, [r5, #6]
|
|
ldrh r4, [r2]
|
|
ldrh r2, [r2, #4]
|
|
ldrh r5, [r1, #0x18]
|
|
and r2, r2, #0x8000
|
|
and r4, r4, #0x8000
|
|
orr r2, r3, r2, asr #4
|
|
orr r2, r2, r4, asr #3
|
|
orr r2, r5, r2
|
|
strh r2, [r1, #0x18]
|
|
ldrh r2, [r1, #0x3c]
|
|
ldrh r3, [r1, #0x1c]
|
|
add r2, r2, #0xa
|
|
mul r2, r0, r2
|
|
add r0, r2, #0xfc
|
|
add r2, r3, r0, lsr #4
|
|
ldr r0, _027F25B0 ; =0x0380FFF4
|
|
strh r2, [r1, #0x1a]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_037F8D58
|
|
mov r0, #0
|
|
_027F25A8:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F25B0: .word 0x0380FFF4
|
|
_027F25B4: .word 0x04808098
|
|
_027F25B8: .word 0x00000182
|
|
_027F25BC: .word 0x04808094
|
|
arm_func_end sub_027F2444
|
|
|
|
arm_func_start sub_027F25C0
|
|
sub_027F25C0: ; 0x027F25C0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _027F2768 ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r1, [r1]
|
|
add r0, r1, #0x2c
|
|
add r5, r0, #0x400
|
|
ldrh r0, [r5, #0x3c]
|
|
ldr r4, [r5, #0x90]
|
|
cmp r0, #0
|
|
beq _027F2760
|
|
add r0, r7, #0x18
|
|
add r1, r1, #0x3a8
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
beq _027F2760
|
|
ldrh r1, [r7, #0x10]
|
|
ldrh r0, [r4, #0x16]
|
|
sub r1, r1, #0x18
|
|
sub r0, r0, #8
|
|
cmp r1, r0
|
|
bgt _027F2760
|
|
add r0, r7, #0x1e
|
|
bl sub_027EB900
|
|
mov r6, r0
|
|
cmp r6, #0xff
|
|
beq _027F263C
|
|
cmp r6, #0
|
|
beq _027F2678
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x40
|
|
beq _027F2678
|
|
_027F263C:
|
|
add r0, r7, #0x1e
|
|
mov r1, #0xc0
|
|
bl sub_027F1FF4
|
|
cmp r0, #0
|
|
bne _027F2760
|
|
add r0, r7, #0x1e
|
|
mov r1, #7
|
|
mov r2, #0
|
|
bl sub_027F1EBC
|
|
cmp r0, #0
|
|
beq _027F2760
|
|
mov r1, #2
|
|
strh r1, [r0]
|
|
bl sub_027F107C
|
|
b _027F2760
|
|
_027F2678:
|
|
cmp r6, #0
|
|
beq _027F2760
|
|
ldrh r1, [r7, #0x14]
|
|
mov r0, r6, lsl #0x10
|
|
mov r1, r1, lsl #0x13
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, r1, lsr #0x1f
|
|
bl sub_027EBD4C
|
|
mov r0, r6
|
|
bl sub_027EBE8C
|
|
mov r0, r6
|
|
bl sub_027EC0CC
|
|
mov r1, #1
|
|
mov r0, r1, lsl r0
|
|
mov r0, r0, lsl #0x10
|
|
ldrh r1, [r5, #0x9a]
|
|
mov r2, r0, lsr #0x10
|
|
tst r2, r1
|
|
bne _027F2760
|
|
ldrh r0, [r5, #0x98]
|
|
tst r2, r0
|
|
beq _027F2760
|
|
orr r0, r1, r2
|
|
strh r0, [r5, #0x9a]
|
|
ldrh r1, [r4, #0x10]
|
|
mvn r0, r2
|
|
and r1, r1, r0
|
|
mov r0, r2, lsl #0xf
|
|
strh r1, [r4, #0x10]
|
|
add r6, r4, #0x1a
|
|
mov r1, r0, lsr #0x10
|
|
b _027F2710
|
|
_027F26F8:
|
|
ldrh r0, [r5, #0x98]
|
|
tst r1, r0
|
|
ldrneh r0, [r4, #0x16]
|
|
addne r6, r6, r0
|
|
mov r0, r1, lsl #0xf
|
|
mov r1, r0, lsr #0x10
|
|
_027F2710:
|
|
cmp r1, #1
|
|
bne _027F26F8
|
|
ldrh r1, [r7, #0x10]
|
|
add r0, r6, #3
|
|
sub r1, r1, #0x18
|
|
strh r1, [r6]
|
|
ldrh r1, [r7, #0x12]
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
ldrh r1, [r7, #0xe]
|
|
add r0, r6, #2
|
|
and r1, r1, #0xff
|
|
bl sub_027EAD24
|
|
ldrh r2, [r6]
|
|
cmp r2, #0
|
|
beq _027F2760
|
|
add r0, r7, #0x2c
|
|
add r1, r6, #8
|
|
add r2, r2, #1
|
|
bl sub_037FDF9C
|
|
_027F2760:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F2768: .word 0x0380FFF4
|
|
arm_func_end sub_027F25C0
|
|
|
|
arm_func_start sub_027F276C
|
|
sub_027F276C: ; 0x027F276C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _027F2834 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r1, [r1]
|
|
add r0, r1, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
add r5, r1, #0x344
|
|
cmp r0, #0x40
|
|
movne r0, #1
|
|
bne _027F282C
|
|
add r0, r4, #0x1e
|
|
add r1, r5, #0x64
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
beq _027F27BC
|
|
add r0, r4, #0x24
|
|
add r1, r5, #0x82
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
bne _027F27C4
|
|
_027F27BC:
|
|
mov r0, #1
|
|
b _027F282C
|
|
_027F27C4:
|
|
ldrh r1, [r4, #0x10]
|
|
ldr r0, _027F2838 ; =0x00000185
|
|
sub r1, r1, #0x1c
|
|
strh r1, [r4, #6]
|
|
sub r1, r4, #0x10
|
|
strh r0, [r1, #0xc]
|
|
mov r0, #0x18
|
|
strh r0, [r1, #0xe]
|
|
ldr r4, _027F2834 ; =0x0380FFF4
|
|
ldr r2, _027F283C ; =0x04808094
|
|
ldr r0, [r4]
|
|
ldrh ip, [r2]
|
|
add r0, r0, #0x400
|
|
ldrh r2, [r2, #4]
|
|
ldrh r3, [r0, #0xe2]
|
|
and r0, r2, #0x8000
|
|
ldrh lr, [r1, #0x18]
|
|
and r2, ip, #0x8000
|
|
orr r0, r3, r0, asr #4
|
|
orr r0, r0, r2, asr #3
|
|
orr r0, lr, r0
|
|
strh r0, [r1, #0x18]
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x188
|
|
bl sub_037F8D58
|
|
mov r0, #0
|
|
_027F282C:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F2834: .word 0x0380FFF4
|
|
_027F2838: .word 0x00000185
|
|
_027F283C: .word 0x04808094
|
|
arm_func_end sub_027F276C
|
|
|
|
arm_func_start sub_027F2840
|
|
sub_027F2840: ; 0x027F2840
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x44
|
|
ldr r1, _027F2E68 ; =0x0380FFF4
|
|
mov sl, r0
|
|
ldr r3, [r1]
|
|
add r0, sl, #0x1e
|
|
ldr r2, [r3, #0x570]
|
|
add r1, r3, #4
|
|
add r2, r2, #1
|
|
str r2, [r3, #0x570]
|
|
add r4, r3, #0x344
|
|
add r5, r1, #0x400
|
|
add r6, r3, #0x31c
|
|
add r7, r3, #0x17c
|
|
bl sub_027EB9A8
|
|
mov r8, r0
|
|
mov r0, r8, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
strh r0, [sl, #2]
|
|
cmp r8, #0xff
|
|
beq _027F2E5C
|
|
ldrh r1, [sl, #0x12]
|
|
bl sub_027EBD2C
|
|
ldrh sb, [sl, #6]
|
|
cmp sb, #0xc
|
|
bls _027F2E5C
|
|
add r1, sp, #0x18
|
|
mov r0, #0
|
|
mov r2, #0x2c
|
|
bl sub_037FDFD0
|
|
add r2, sl, #0x38
|
|
sub r1, sb, #0xc
|
|
mov r0, #2
|
|
str r2, [sp, #0x18]
|
|
strh r1, [sp, #0x20]
|
|
strh r0, [sp, #0x22]
|
|
ldrh r0, [r4, #0x1e]
|
|
cmp r0, #0
|
|
ldreqh r0, [sp, #0x22]
|
|
orreq r0, r0, #1
|
|
streqh r0, [sp, #0x22]
|
|
mov r0, #0x38
|
|
strh r0, [sp, #0x24]
|
|
ldrh r1, [sl, #8]
|
|
add r0, sp, #0x18
|
|
strh r1, [sp, #0x1c]
|
|
ldrh r1, [sl, #0x36]
|
|
strh r1, [sp, #0x1e]
|
|
bl sub_027F3C10
|
|
ldr sb, [sp, #0x38]
|
|
cmp sb, #0
|
|
beq _027F293C
|
|
ldrh r0, [sl, #0x16]
|
|
tst r0, #0x8000
|
|
beq _027F293C
|
|
add r0, sb, #6
|
|
bl sub_027EAD50
|
|
mov fp, r0
|
|
add r0, sb, #7
|
|
bl sub_027EAD50
|
|
ldr r1, _027F2E6C ; =0x0480810C
|
|
add r0, fp, r0, lsl #8
|
|
strh r0, [r1]
|
|
_027F293C:
|
|
ldrh r1, [r5]
|
|
cmp r1, #0x13
|
|
ldreq r0, [r5, #0x18]
|
|
ldreqh r0, [r0, #0x38]
|
|
cmpeq r0, #1
|
|
bne _027F2974
|
|
ldrh r0, [sp, #0x22]
|
|
and r0, r0, #9
|
|
cmp r0, #9
|
|
bne _027F2E44
|
|
add r1, sp, #0x18
|
|
mov r0, sl
|
|
bl sub_027F31F0
|
|
b _027F2E44
|
|
_027F2974:
|
|
ldrh r0, [sp, #0x22]
|
|
tst r0, #8
|
|
beq _027F2E44
|
|
cmp r1, #0x21
|
|
bne _027F2AFC
|
|
bl sub_027EABE0
|
|
ldrh r0, [sp, #0x22]
|
|
and r0, r0, #0x30
|
|
cmp r0, #0x30
|
|
movne r0, #0xc
|
|
strneh r0, [r5, #4]
|
|
movne r0, #0xa
|
|
strneh r0, [r5, #6]
|
|
bne _027F2AD8
|
|
ldrh r0, [sl, #0x34]
|
|
cmp r0, #0x3e8
|
|
movhi r0, #0xc
|
|
strhih r0, [r5, #4]
|
|
movhi r0, #1
|
|
strhih r0, [r5, #6]
|
|
bhi _027F2AD8
|
|
mov r1, #0
|
|
strh r1, [r5, #4]
|
|
ldrh r0, [sp, #0x24]
|
|
tst r0, #2
|
|
beq _027F29F0
|
|
ldrh r0, [sp, #0x22]
|
|
tst r0, #2
|
|
bne _027F29F0
|
|
ldrh r0, [sp, #0x2a]
|
|
bl sub_027E9900
|
|
_027F29F0:
|
|
ldrh r1, [sp, #0x2e]
|
|
mov r0, r8
|
|
bl sub_027EBE2C
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #2
|
|
bne _027F2A80
|
|
ldr sb, [sp, #0x40]
|
|
cmp sb, #0
|
|
beq _027F2A68
|
|
add r0, sb, #6
|
|
bl sub_027EAD50
|
|
mov fp, r0
|
|
add r0, sb, #7
|
|
bl sub_027EAD50
|
|
add r0, fp, r0, lsl #8
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #1
|
|
bl sub_027E91B0
|
|
ldr r0, [sp, #0x40]
|
|
add r0, r0, #8
|
|
bl sub_027EAD50
|
|
ldr r1, [sp, #0x40]
|
|
mov sb, r0
|
|
add r0, r1, #9
|
|
bl sub_027EAD50
|
|
add r1, sb, r0, lsl #8
|
|
ldr r0, _027F2E70 ; =0x0380FFF0
|
|
strh r1, [r0]
|
|
b _027F2A80
|
|
_027F2A68:
|
|
ldr r0, _027F2E74 ; =0x0000FFFF
|
|
mov r1, #1
|
|
bl sub_027E91B0
|
|
ldr r0, _027F2E70 ; =0x0380FFF0
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
_027F2A80:
|
|
ldr r0, [sp, #0x3c]
|
|
add r0, r0, #3
|
|
bl sub_027EAD50
|
|
bl sub_027E9738
|
|
ldr r0, [sp, #0x3c]
|
|
add r0, r0, #2
|
|
bl sub_027EAD50
|
|
strh r0, [r4, #0x76]
|
|
ldrh r0, [sl, #0x34]
|
|
bl sub_027E96E0
|
|
mov r0, #1
|
|
strh r0, [r4, #0x12]
|
|
strh r0, [r4, #0x1a]
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #2
|
|
ldreq r0, _027F2E78 ; =0x04808048
|
|
moveq r1, #3
|
|
streqh r1, [r0]
|
|
ldr r1, _027F2E7C ; =0x04808038
|
|
ldrh r0, [r1]
|
|
orr r0, r0, #1
|
|
strh r0, [r1]
|
|
_027F2AD8:
|
|
ldr r0, [r5, #0x1c]
|
|
add r1, sl, #0x1e
|
|
add r0, r0, #8
|
|
bl sub_027EA0E0
|
|
mov r2, #0x25
|
|
mov r0, #2
|
|
mov r1, #1
|
|
strh r2, [r5]
|
|
bl sub_037F8598
|
|
_027F2AFC:
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #2
|
|
beq _027F2B14
|
|
cmp r0, #3
|
|
beq _027F2BCC
|
|
b _027F2E2C
|
|
_027F2B14:
|
|
ldr sb, [sp, #0x40]
|
|
cmp sb, #0
|
|
beq _027F2BCC
|
|
add r0, sb, #6
|
|
bl sub_027EAD50
|
|
mov r5, r0
|
|
add r0, sb, #7
|
|
bl sub_027EAD50
|
|
add r0, r5, r0, lsl #8
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0
|
|
bl sub_027E91B0
|
|
ldr r0, [sp, #0x40]
|
|
add r0, r0, #8
|
|
bl sub_027EAD50
|
|
ldr r1, [sp, #0x40]
|
|
mov r5, r0
|
|
add r0, r1, #9
|
|
bl sub_027EAD50
|
|
ldr r1, _027F2E70 ; =0x0380FFF0
|
|
add r0, r5, r0, lsl #8
|
|
strh r0, [r1]
|
|
ldr r0, [sp, #0x40]
|
|
add r0, r0, #1
|
|
bl sub_027EAD50
|
|
sub r0, r0, #8
|
|
strh r0, [r4, #0xa0]
|
|
ldrh r2, [r4, #0xa0]
|
|
cmp r2, #0
|
|
beq _027F2BCC
|
|
ldr r0, [sp, #0x40]
|
|
ldr r1, [r4, #0x9c]
|
|
tst r0, #1
|
|
beq _027F2BB8
|
|
add r0, r0, #9
|
|
add r2, r2, #2
|
|
bl sub_037FDF9C
|
|
mov r0, #1
|
|
strh r0, [r4, #0xa2]
|
|
b _027F2BCC
|
|
_027F2BB8:
|
|
add r0, r0, #0xa
|
|
add r2, r2, #1
|
|
bl sub_037FDF9C
|
|
mov r0, #0
|
|
strh r0, [r4, #0xa2]
|
|
_027F2BCC:
|
|
mov r1, #0
|
|
mov r0, r8
|
|
strh r1, [r4, #0x80]
|
|
bl sub_027EBE8C
|
|
add r1, sl, #0x2c
|
|
add r0, sp, #0x10
|
|
ldmia r1, {r2, r3}
|
|
stmia r0, {r2, r3}
|
|
ldrh r0, [r4, #0x6e]
|
|
mov r5, #0
|
|
mov r8, r0, lsl #0xa
|
|
ldr r0, [sp, #0x10]
|
|
ldr r1, [sp, #0x14]
|
|
mov r2, r8
|
|
mov r3, r5
|
|
bl sub_03806B80
|
|
adds fp, r0, #1
|
|
umull r3, r0, fp, r8
|
|
adc sb, r1, #0
|
|
mla r0, fp, r5, r0
|
|
mla r0, sb, r8, r0
|
|
add r2, sp, #0x10
|
|
str r0, [sp, #0x14]
|
|
ldr r1, _027F2E80 ; =0x048080F6
|
|
ldrh r0, [r2, #6]
|
|
str r3, [sp, #0x10]
|
|
strh r0, [r1]
|
|
ldrh r0, [r2, #4]
|
|
strh r0, [r1, #-2]
|
|
ldrh r0, [r2, #2]
|
|
strh r0, [r1, #-4]
|
|
ldrh r0, [r2]
|
|
orr r0, r0, #1
|
|
strh r0, [r1, #-6]
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #2
|
|
bne _027F2D34
|
|
ldrh r0, [r4, #0x1a]
|
|
cmp r0, #0
|
|
beq _027F2D34
|
|
ldr r1, [sp, #0x10]
|
|
ldr r0, [sp, #0x14]
|
|
subs r1, r1, r8
|
|
sbc r0, r0, r5
|
|
str r1, [sp, #0x10]
|
|
str r0, [sp, #0x14]
|
|
bl sub_037FDD00
|
|
ldr r1, _027F2E84 ; =0x048080F8
|
|
ldrh ip, [r1]
|
|
ldrh fp, [r1, #2]
|
|
ldrh sb, [r1, #4]
|
|
ldrh r8, [r1, #6]
|
|
ldrh r5, [r1]
|
|
ldrh r3, [r1, #2]
|
|
ldrh r2, [r1, #4]
|
|
ldrh r1, [r1, #6]
|
|
strh ip, [sp, #8]
|
|
strh r5, [sp]
|
|
strh fp, [sp, #0xa]
|
|
strh sb, [sp, #0xc]
|
|
strh r8, [sp, #0xe]
|
|
strh r3, [sp, #2]
|
|
strh r2, [sp, #4]
|
|
strh r1, [sp, #6]
|
|
bl sub_037FDD14
|
|
ldrh r1, [sp, #8]
|
|
ldrh r0, [sp]
|
|
cmp r1, r0
|
|
bhs _027F2CF8
|
|
ldr r2, [sp, #8]
|
|
ldr r0, [sp, #0x10]
|
|
ldr r1, [sp, #0xc]
|
|
subs r2, r2, r0
|
|
ldr r0, [sp, #0x14]
|
|
b _027F2D0C
|
|
_027F2CF8:
|
|
ldr r2, [sp]
|
|
ldr r0, [sp, #0x10]
|
|
ldr r1, [sp, #4]
|
|
subs r2, r2, r0
|
|
ldr r0, [sp, #0x14]
|
|
_027F2D0C:
|
|
sbc r0, r1, r0
|
|
mov r2, r2, lsr #0xa
|
|
orr r2, r2, r0, lsl #22
|
|
ldrh r1, [r6, #0x20]
|
|
ldr r0, _027F2E88 ; =0x04808134
|
|
cmp r2, r1
|
|
sublo r1, r1, r2
|
|
strloh r1, [r0]
|
|
movhs r1, #0
|
|
strhsh r1, [r0]
|
|
_027F2D34:
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x40
|
|
bne _027F2E2C
|
|
ldr r1, [sp, #0x3c]
|
|
cmp r1, #0
|
|
beq _027F2E2C
|
|
ldrh r0, [r4, #0xe]
|
|
cmp r0, #1
|
|
bne _027F2E2C
|
|
add r0, r1, #2
|
|
bl sub_027EAD50
|
|
ldrh r1, [r4, #0x76]
|
|
cmp r1, r0
|
|
strneh r0, [r4, #0x76]
|
|
mov r1, #0
|
|
strh r1, [r4, #0x8e]
|
|
cmp r0, #0
|
|
bne _027F2D98
|
|
ldr r0, [sp, #0x3c]
|
|
add r0, r0, #4
|
|
bl sub_027EAD50
|
|
tst r0, #1
|
|
ldrneh r0, [r4, #0x8e]
|
|
orrne r0, r0, #1
|
|
strneh r0, [r4, #0x8e]
|
|
_027F2D98:
|
|
ldr r0, [sp, #0x3c]
|
|
add r0, r0, #4
|
|
bl sub_027EAD50
|
|
ldr r1, [sp, #0x3c]
|
|
and r8, r0, #0xfe
|
|
add r0, r1, #1
|
|
mov r5, r8, lsl #3
|
|
bl sub_027EAD50
|
|
ldrh r1, [r4, #0x6a]
|
|
add r0, r8, r0
|
|
cmp r1, r8, lsl #3
|
|
sub r0, r0, #3
|
|
blo _027F2E08
|
|
cmp r1, r0, lsl #3
|
|
bhi _027F2E08
|
|
ldr r0, [sp, #0x3c]
|
|
sub r5, r1, r5
|
|
add r0, r0, #5
|
|
add r0, r0, r5, lsr #3
|
|
bl sub_027EAD50
|
|
and r1, r5, #7
|
|
mov r2, #1
|
|
tst r0, r2, lsl r1
|
|
beq _027F2E08
|
|
ldrh r0, [r4, #0x8e]
|
|
orr r0, r0, #2
|
|
strh r0, [r4, #0x8e]
|
|
bl sub_027F1108
|
|
_027F2E08:
|
|
ldrh r0, [r7, #0x20]
|
|
cmp r0, #0
|
|
ldreqh r0, [r7, #0x2c]
|
|
cmpeq r0, #0
|
|
ldreqh r0, [r4, #0x8e]
|
|
cmpeq r0, #0
|
|
bne _027F2E2C
|
|
mov r0, #1
|
|
bl sub_027E9CB4
|
|
_027F2E2C:
|
|
ldrh r0, [r6, #0x1e]
|
|
mov r0, r0, lsl #0x19
|
|
movs r0, r0, lsr #0x1f
|
|
beq _027F2E44
|
|
mov r0, sl
|
|
bl sub_027EDF94
|
|
_027F2E44:
|
|
ldr r2, [sp, #0x34]
|
|
cmp r2, #0
|
|
beq _027F2E5C
|
|
ldrh r0, [sp, #0x2a]
|
|
mov r1, sl
|
|
bl sub_027F4B7C
|
|
_027F2E5C:
|
|
add sp, sp, #0x44
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F2E68: .word 0x0380FFF4
|
|
_027F2E6C: .word 0x0480810C
|
|
_027F2E70: .word 0x0380FFF0
|
|
_027F2E74: .word 0x0000FFFF
|
|
_027F2E78: .word 0x04808048
|
|
_027F2E7C: .word 0x04808038
|
|
_027F2E80: .word 0x048080F6
|
|
_027F2E84: .word 0x048080F8
|
|
_027F2E88: .word 0x04808134
|
|
arm_func_end sub_027F2840
|
|
|
|
arm_func_start sub_027F2E8C
|
|
sub_027F2E8C: ; 0x027F2E8C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _027F2F68 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
ldrh r5, [r4, #2]
|
|
add r1, r0, #0x344
|
|
ldrh r0, [r1, #0xc]
|
|
cmp r0, #1
|
|
beq _027F2EC0
|
|
cmp r0, #2
|
|
cmpne r0, #3
|
|
beq _027F2F28
|
|
b _027F2F60
|
|
_027F2EC0:
|
|
mov r0, r5
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x40
|
|
bne _027F2EF8
|
|
mov r0, r5, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x30
|
|
bl sub_027EBC44
|
|
ldrh r1, [r4, #0x2c]
|
|
add r0, r4, #0x1e
|
|
bl sub_027EDE44
|
|
mov r0, r5
|
|
bl sub_027F0D60
|
|
b _027F2F60
|
|
_027F2EF8:
|
|
cmp r0, #0x30
|
|
add r0, r4, #0x1e
|
|
mov r1, #7
|
|
bne _027F2F10
|
|
bl sub_027F16A4
|
|
b _027F2F18
|
|
_027F2F10:
|
|
mov r2, #1
|
|
bl sub_027F1EBC
|
|
_027F2F18:
|
|
cmp r0, #0
|
|
beq _027F2F60
|
|
bl sub_027F107C
|
|
b _027F2F60
|
|
_027F2F28:
|
|
ldrh r0, [r1, #8]
|
|
cmp r0, #0x40
|
|
bne _027F2F60
|
|
add r0, r4, #0x1e
|
|
add r1, r1, #0x82
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
beq _027F2F60
|
|
mov r0, #0x30
|
|
bl sub_037F9238
|
|
bl sub_027EA03C
|
|
ldrh r1, [r4, #0x2c]
|
|
add r0, r4, #0x1e
|
|
bl sub_027EDE44
|
|
_027F2F60:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F2F68: .word 0x0380FFF4
|
|
arm_func_end sub_027F2E8C
|
|
|
|
arm_func_start sub_027F2F6C
|
|
sub_027F2F6C: ; 0x027F2F6C
|
|
stmdb sp!, {r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x2c
|
|
ldr r1, _027F3134 ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r0, [r1]
|
|
ldrh r5, [r7, #6]
|
|
add r4, r0, #0x31c
|
|
cmp r5, #4
|
|
bls _027F3128
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #1
|
|
bne _027F3128
|
|
add r0, r7, #0x1e
|
|
mov r1, #0x10
|
|
bl sub_027F1FF4
|
|
cmp r0, #0
|
|
bne _027F3128
|
|
ldrh r6, [r7, #2]
|
|
cmp r6, #0
|
|
beq _027F2FD0
|
|
mov r0, r6
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x30
|
|
bhs _027F3004
|
|
_027F2FD0:
|
|
add r0, r7, #0x1e
|
|
mov r1, #0xc0
|
|
bl sub_027F1FF4
|
|
cmp r0, #0
|
|
bne _027F3128
|
|
add r0, r7, #0x1e
|
|
mov r1, #6
|
|
mov r2, #1
|
|
bl sub_027F1EBC
|
|
cmp r0, #0
|
|
beq _027F3128
|
|
bl sub_027F107C
|
|
b _027F3128
|
|
_027F3004:
|
|
mov r0, r6
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x40
|
|
mov r0, r6
|
|
bne _027F3030
|
|
mov r1, #0x30
|
|
bl sub_027EBC44
|
|
add r0, r7, #0x1e
|
|
mov r1, #1
|
|
bl sub_027EDE44
|
|
b _027F303C
|
|
_027F3030:
|
|
bl sub_027EC0CC
|
|
cmp r0, #0
|
|
bne _027F3128
|
|
_027F303C:
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
mov r2, #0x2c
|
|
bl sub_037FDFD0
|
|
add r2, r7, #0x30
|
|
sub r1, r5, #4
|
|
str r2, [sp]
|
|
strh r1, [sp, #8]
|
|
add r0, sp, #0
|
|
bl sub_027F3C10
|
|
ldrh r1, [r7, #0x2c]
|
|
ldr r0, _027F3138 ; =0x0000FFC2
|
|
tst r1, r0
|
|
bne _027F30D4
|
|
mov r0, r1, lsl #0x1f
|
|
movs r0, r0, lsr #0x1f
|
|
beq _027F30D4
|
|
ldrh r2, [r4, #0x18]
|
|
cmp r2, #0
|
|
moveq r0, r1, lsl #0x1b
|
|
moveq r0, r0, lsr #0x1f
|
|
cmpeq r0, #1
|
|
beq _027F30D4
|
|
cmp r2, #0
|
|
beq _027F30B0
|
|
ldrh r0, [r7, #0x2c]
|
|
mov r0, r0, lsl #0x1b
|
|
movs r0, r0, lsr #0x1f
|
|
beq _027F30D4
|
|
_027F30B0:
|
|
ldrh r0, [r4, #0x1e]
|
|
mov r0, r0, lsl #0x1d
|
|
mov r0, r0, lsr #0x1f
|
|
cmp r0, #1
|
|
bne _027F30DC
|
|
ldrh r0, [r7, #0x2c]
|
|
mov r0, r0, lsl #0x1a
|
|
movs r0, r0, lsr #0x1f
|
|
bne _027F30DC
|
|
_027F30D4:
|
|
mov r1, #0xa
|
|
b _027F3110
|
|
_027F30DC:
|
|
mov r0, r6
|
|
bl sub_027EBE0C
|
|
ldrh r0, [sp, #0xa]
|
|
tst r0, #1
|
|
moveq r1, #1
|
|
beq _027F3110
|
|
tst r0, #4
|
|
moveq r1, #0x12
|
|
beq _027F3110
|
|
ldrh r1, [sp, #0x16]
|
|
mov r0, r6
|
|
bl sub_027EBE2C
|
|
mov r1, #0
|
|
_027F3110:
|
|
ldr r2, [sp, #0x1c]
|
|
mov r0, r6
|
|
bl sub_027F187C
|
|
cmp r0, #0
|
|
beq _027F3128
|
|
bl sub_027F107C
|
|
_027F3128:
|
|
add sp, sp, #0x2c
|
|
ldmia sp!, {r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F3134: .word 0x0380FFF4
|
|
_027F3138: .word 0x0000FFC2
|
|
arm_func_end sub_027F2F6C
|
|
|
|
arm_func_start sub_027F313C
|
|
sub_027F313C: ; 0x027F313C
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #0x2c
|
|
mov r4, r0
|
|
add r0, r4, #0x1e
|
|
mov r1, #0x50
|
|
bl sub_027F1FF4
|
|
cmp r0, #0
|
|
bne _027F31E0
|
|
ldrh r0, [r4, #0x24]
|
|
tst r0, #1
|
|
bne _027F3174
|
|
ldrh r0, [r4, #8]
|
|
tst r0, #0x8000
|
|
beq _027F31E0
|
|
_027F3174:
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
mov r2, #0x2c
|
|
bl sub_037FDFD0
|
|
add r0, r4, #0x2c
|
|
str r0, [sp]
|
|
ldrh r1, [r4, #6]
|
|
ldr r0, _027F31EC ; =0x0380FFF4
|
|
strh r1, [sp, #8]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x3a]
|
|
mov r0, r0, lsl #0x1e
|
|
movs r0, r0, lsr #0x1f
|
|
moveq r0, #0x800
|
|
streqh r0, [sp, #0xc]
|
|
add r0, sp, #0
|
|
bl sub_027F3C10
|
|
ldrh r0, [sp, #0xa]
|
|
and r0, r0, #1
|
|
cmp r0, #1
|
|
bne _027F31E0
|
|
add r0, r4, #0x1e
|
|
bl sub_027F1BDC
|
|
cmp r0, #0
|
|
beq _027F31E0
|
|
bl sub_027F107C
|
|
_027F31E0:
|
|
add sp, sp, #0x2c
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F31EC: .word 0x0380FFF4
|
|
arm_func_end sub_027F313C
|
|
|
|
arm_func_start sub_027F31F0
|
|
sub_027F31F0: ; 0x027F31F0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x30
|
|
ldr r2, _027F35B8 ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r2, [r2]
|
|
mov sl, r1
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
cmp r1, #0x13
|
|
add r4, r0, #0x400
|
|
bne _027F35AC
|
|
ldr r0, [r4, #0x18]
|
|
ldr r5, [r4, #0x1c]
|
|
add r8, r0, #0x4e
|
|
mov r6, #0
|
|
b _027F3260
|
|
_027F3234:
|
|
mov r0, r8
|
|
add r1, r7, #0x24
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
ldrneh r1, [r5, #6]
|
|
movne r0, #1
|
|
orrne r0, r1, r0, lsl r6
|
|
strneh r0, [r5, #6]
|
|
bne _027F35AC
|
|
add r8, r8, #6
|
|
add r6, r6, #1
|
|
_027F3260:
|
|
ldr r0, [r4, #0x18]
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r6, r0
|
|
blo _027F3234
|
|
add r6, r5, #0xa
|
|
mov r8, #0
|
|
b _027F329C
|
|
_027F327C:
|
|
add r0, r7, #0x24
|
|
add r1, r6, #4
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
bne _027F35AC
|
|
ldrh r0, [r6]
|
|
add r8, r8, #1
|
|
add r6, r6, r0, lsl #1
|
|
_027F329C:
|
|
ldrh r0, [r5, #8]
|
|
cmp r8, r0
|
|
blo _027F327C
|
|
mov r1, r6
|
|
mov r0, #0
|
|
mov r2, #0x40
|
|
bl sub_037FDF74
|
|
ldrh r8, [r7, #6]
|
|
cmp r8, #0xc
|
|
bls _027F35AC
|
|
cmp sl, #0
|
|
bne _027F3318
|
|
add r1, sp, #4
|
|
mov r0, #0
|
|
mov r2, #0x2c
|
|
bl sub_037FDFD0
|
|
add r3, r7, #0x38
|
|
sub r2, r8, #0xc
|
|
mov r0, #0x38
|
|
strh r0, [sp, #0x10]
|
|
mov r1, #3
|
|
str r3, [sp, #4]
|
|
strh r2, [sp, #0xc]
|
|
strh r1, [sp, #0xe]
|
|
ldrh r1, [r7, #8]
|
|
add r0, sp, #4
|
|
strh r1, [sp, #8]
|
|
ldrh r1, [r7, #0x36]
|
|
strh r1, [sp, #0xa]
|
|
bl sub_027F3C10
|
|
add sl, sp, #4
|
|
_027F3318:
|
|
ldr r0, [sl, #0x28]
|
|
cmp r0, #0
|
|
ldreqh r0, [sl, #0x1a]
|
|
beq _027F333C
|
|
add r0, r0, #1
|
|
bl sub_027EAD50
|
|
sub r0, r0, #8
|
|
strh r0, [r6, #0x3c]
|
|
ldrh r0, [r6, #0x3c]
|
|
_027F333C:
|
|
add r0, r0, #0x41
|
|
mov r0, r0, lsr #1
|
|
strh r0, [r6]
|
|
ldrh r0, [sl, #0xa]
|
|
and r0, r0, #1
|
|
cmp r0, #1
|
|
bne _027F35A0
|
|
ldr r0, _027F35B8 ; =0x0380FFF4
|
|
ldrh r1, [r6]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
ldrh r0, [r0, #8]
|
|
cmp r0, r1
|
|
blo _027F35A0
|
|
ldrh r1, [r7, #0x36]
|
|
add r0, r6, #4
|
|
strh r1, [r6, #0x2c]
|
|
add r1, r7, #0x24
|
|
bl sub_027EA0E0
|
|
ldrh r0, [r7, #0x34]
|
|
strh r0, [r6, #0x32]
|
|
ldrh r0, [r7, #0x12]
|
|
and r0, r0, #0xff
|
|
strh r0, [r6, #2]
|
|
ldr r0, [sl, #0x28]
|
|
cmp r0, #0
|
|
beq _027F33E4
|
|
mov r7, #0
|
|
add r8, r6, #0x40
|
|
b _027F33D4
|
|
_027F33B4:
|
|
ldr r0, [sl, #0x28]
|
|
add r0, r0, #0xa
|
|
add r0, r0, r7
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
add r0, r8, r7
|
|
bl sub_027EAD24
|
|
add r7, r7, #1
|
|
_027F33D4:
|
|
ldrh r0, [r6, #0x3c]
|
|
cmp r7, r0
|
|
blo _027F33B4
|
|
b _027F3488
|
|
_027F33E4:
|
|
ldrh r0, [sl, #0x18]
|
|
strh r0, [r6, #0x3e]
|
|
ldrh r0, [sl, #0x18]
|
|
cmp r0, #0
|
|
beq _027F3488
|
|
add r7, r7, #0x38
|
|
add fp, r6, #0x40
|
|
mov r8, #0
|
|
b _027F347C
|
|
_027F3408:
|
|
mov r0, r7
|
|
bl sub_027EAD50
|
|
mov sb, r0
|
|
add r0, r7, #1
|
|
bl sub_027EAD50
|
|
cmp sb, #6
|
|
bls _027F3474
|
|
ldr r1, [sl, #0x28]
|
|
cmp r7, r1
|
|
beq _027F3474
|
|
add r0, r0, #2
|
|
mov sb, #0
|
|
str r0, [sp]
|
|
b _027F3460
|
|
_027F3440:
|
|
mov r0, r7
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
mov r0, fp
|
|
bl sub_027EAD24
|
|
add fp, fp, #1
|
|
add r7, r7, #1
|
|
add sb, sb, #1
|
|
_027F3460:
|
|
ldr r0, [sp]
|
|
cmp sb, r0
|
|
blo _027F3440
|
|
add r8, r8, #1
|
|
b _027F347C
|
|
_027F3474:
|
|
add r0, r0, #2
|
|
add r7, r7, r0
|
|
_027F347C:
|
|
ldrh r0, [sl, #0x18]
|
|
cmp r8, r0
|
|
blo _027F3408
|
|
_027F3488:
|
|
ldr r0, [sl, #0x1c]
|
|
cmp r0, #0
|
|
beq _027F34DC
|
|
add r0, r0, #1
|
|
bl sub_027EAD50
|
|
strh r0, [r6, #0xa]
|
|
mov r7, #0
|
|
add r8, r6, #0xc
|
|
b _027F34CC
|
|
_027F34AC:
|
|
ldr r0, [sl, #0x1c]
|
|
add r0, r0, #2
|
|
add r0, r0, r7
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
add r0, r8, r7
|
|
bl sub_027EAD24
|
|
add r7, r7, #1
|
|
_027F34CC:
|
|
ldrh r0, [r6, #0xa]
|
|
cmp r7, r0
|
|
blo _027F34AC
|
|
b _027F3504
|
|
_027F34DC:
|
|
mov sb, #0
|
|
strh sb, [r6, #0xa]
|
|
add r8, r6, #0xc
|
|
mov r7, sb
|
|
_027F34EC:
|
|
mov r1, r7
|
|
add r0, r8, sb
|
|
bl sub_027EAD24
|
|
add sb, sb, #1
|
|
cmp sb, #0x20
|
|
blo _027F34EC
|
|
_027F3504:
|
|
ldrh r0, [sl, #0x14]
|
|
strh r0, [r6, #0x2e]
|
|
ldrh r0, [sl, #0x16]
|
|
strh r0, [r6, #0x30]
|
|
ldrh r0, [sl, #0x12]
|
|
strh r0, [r6, #0x36]
|
|
ldr r0, [sl, #0x20]
|
|
cmp r0, #0
|
|
beq _027F3534
|
|
add r0, r0, #3
|
|
bl sub_027EAD50
|
|
strh r0, [r6, #0x38]
|
|
_027F3534:
|
|
ldr r0, [sl, #0x24]
|
|
cmp r0, #0
|
|
beq _027F354C
|
|
add r0, r0, #3
|
|
bl sub_027EAD50
|
|
strh r0, [r6, #0x34]
|
|
_027F354C:
|
|
ldrh r1, [r5, #2]
|
|
ldrh r0, [r6]
|
|
add r0, r1, r0
|
|
strh r0, [r5, #2]
|
|
ldrh r0, [r5, #8]
|
|
add r0, r0, #1
|
|
strh r0, [r5, #8]
|
|
ldrh r1, [r4, #4]
|
|
ldrh r0, [r6]
|
|
sub r0, r1, r0
|
|
strh r0, [r4, #4]
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0x20
|
|
bhs _027F35AC
|
|
bl sub_027EABE0
|
|
mov r2, #0x15
|
|
mov r0, #2
|
|
mov r1, #0
|
|
strh r2, [r4]
|
|
bl sub_037F8598
|
|
b _027F35AC
|
|
_027F35A0:
|
|
ldr r1, _027F35BC ; =0x027F74B4
|
|
add r0, r6, #4
|
|
bl sub_027EA0E0
|
|
_027F35AC:
|
|
add sp, sp, #0x30
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F35B8: .word 0x0380FFF4
|
|
_027F35BC: .word 0x027F74B4
|
|
arm_func_end sub_027F31F0
|
|
|
|
arm_func_start sub_027F35C0
|
|
sub_027F35C0: ; 0x027F35C0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r1, _027F3B4C ; =0x0380FFF4
|
|
mov sl, r0
|
|
ldr r2, [r1]
|
|
add r0, r2, #0x600
|
|
ldrh r1, [r0, #0x90]
|
|
add r0, r2, #4
|
|
tst r1, #8
|
|
add r4, r2, #0x344
|
|
add sb, r0, #0x400
|
|
beq _027F3660
|
|
ldr r1, _027F3B50 ; =0x048080B0
|
|
add r0, r2, #0x2c
|
|
ldrh r2, [r1]
|
|
add r1, r0, #0x400
|
|
tst r2, #1
|
|
ldrneh r0, [r1]
|
|
cmpne r0, #0
|
|
bne _027F3660
|
|
tst r2, #4
|
|
ldrneh r0, [r1, #0x14]
|
|
cmpne r0, #0
|
|
bne _027F3660
|
|
tst r2, #8
|
|
ldrneh r0, [r1, #0x28]
|
|
cmpne r0, #0
|
|
bne _027F3660
|
|
ldr r0, _027F3B54 ; =0x0480819C
|
|
ldrh r0, [r0]
|
|
tst r0, #1
|
|
bne _027F3660
|
|
ldr r2, _027F3B58 ; =0x04808032
|
|
mov r3, #0
|
|
strh r3, [r2]
|
|
mov r1, #0x8000
|
|
ldr r0, _027F3B4C ; =0x0380FFF4
|
|
strh r1, [r2]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
strh r3, [r0, #0xde]
|
|
_027F3660:
|
|
add r0, sl, #0x1e
|
|
mov r1, #0xb0
|
|
bl sub_027F1FF4
|
|
cmp r0, #0
|
|
bne _027F3B44
|
|
ldrh r0, [sl, #0x2e]
|
|
ldrh r8, [sl, #2]
|
|
add r0, r0, #1
|
|
mov r0, r0, lsl #0x10
|
|
cmp r8, #0
|
|
mov r5, #0
|
|
mov r6, r0, lsr #0x10
|
|
moveq r7, #0x13
|
|
moveq r5, #1
|
|
beq _027F3B08
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
bne _027F3710
|
|
mov r0, r8
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x20
|
|
bls _027F36D4
|
|
mov r0, r8, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x20
|
|
bl sub_027EBC44
|
|
add r0, sl, #0x1e
|
|
mov r1, #1
|
|
bl sub_027EDBE4
|
|
_027F36D4:
|
|
ldrh r0, [sl, #8]
|
|
tst r0, #0x400
|
|
beq _027F3710
|
|
mov r0, r8
|
|
bl sub_027EC060
|
|
cmp r0, #0
|
|
beq _027F3710
|
|
mov r5, #1
|
|
mov r0, r8
|
|
mov r1, #0
|
|
strh r5, [sl, #0x2c]
|
|
mov r7, #0xf
|
|
mov r6, #4
|
|
bl sub_027EBE6C
|
|
b _027F3B08
|
|
_027F3710:
|
|
ldrh r0, [sl, #0x2c]
|
|
cmp r0, #0
|
|
beq _027F3728
|
|
cmp r0, #1
|
|
beq _027F3804
|
|
b _027F3AF8
|
|
_027F3728:
|
|
ldrh r1, [r4, #0xc]
|
|
cmp r1, #1
|
|
ldreq r0, _027F3B4C ; =0x0380FFF4
|
|
ldreq r0, [r0]
|
|
addeq r0, r0, #0x300
|
|
ldreqh r0, [r0, #0x32]
|
|
cmpeq r0, #1
|
|
moveq r7, #0xd
|
|
moveq r5, #1
|
|
beq _027F3B08
|
|
cmp r1, #1
|
|
bne _027F3774
|
|
ldrh r0, [sl, #0x2e]
|
|
mov r5, #1
|
|
cmp r0, #1
|
|
moveq r7, #0
|
|
movne r7, #0xe
|
|
movne r6, #2
|
|
b _027F3B08
|
|
_027F3774:
|
|
beq _027F3B08
|
|
ldrh r0, [sl, #0x2e]
|
|
cmp r0, #2
|
|
ldreq r1, [sb, #0x18]
|
|
ldreqh r0, [r1, #0x16]
|
|
cmpeq r0, #0
|
|
bne _027F3B08
|
|
add r0, r1, #0x10
|
|
add r1, sl, #0x1e
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
beq _027F3B08
|
|
ldrh r0, [sb]
|
|
cmp r0, #0x31
|
|
bne _027F3B08
|
|
bl sub_027EABE0
|
|
ldrh r0, [sl, #0x30]
|
|
cmp r0, #0
|
|
ldrne r0, [sb, #0x1c]
|
|
movne r1, #0xc
|
|
strneh r1, [r0, #4]
|
|
ldrneh r1, [sl, #0x30]
|
|
bne _027F37E4
|
|
mov r0, #0x30
|
|
bl sub_037F9238
|
|
ldr r0, [sb, #0x1c]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
_027F37E4:
|
|
ldr r0, [sb, #0x1c]
|
|
mov r2, #0x35
|
|
strh r1, [r0, #6]
|
|
mov r0, #2
|
|
mov r1, r0
|
|
strh r2, [sb]
|
|
bl sub_037F8598
|
|
b _027F3B08
|
|
_027F3804:
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
bne _027F39A4
|
|
mov r0, r8, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x20
|
|
bl sub_027EBC44
|
|
ldrh r0, [sl, #0x2e]
|
|
cmp r0, #1
|
|
bne _027F38C0
|
|
add r0, sl, #0x1e
|
|
mov r1, #0x80
|
|
mov r2, #1
|
|
bl sub_027F1DFC
|
|
movs r4, r0
|
|
beq _027F3B08
|
|
ldrh r1, [sl, #0x2c]
|
|
ldr r0, _027F3B5C ; =0x04808044
|
|
strh r1, [r4, #0x2c]
|
|
strh r6, [r4, #0x2e]
|
|
mov r1, #0
|
|
strh r1, [r4, #0x30]
|
|
ldrh r1, [r0]
|
|
ldrh r0, [r0]
|
|
add r0, r1, r0, lsl #8
|
|
mov r0, r0, lsl #0x10
|
|
movs sb, r0, lsr #0x10
|
|
moveq sb, #1
|
|
mov r0, sb
|
|
bl sub_027EADA0
|
|
mov r0, r8
|
|
mov r1, sb
|
|
bl sub_027EBE6C
|
|
add r0, r4, #0x33
|
|
add sb, r4, #0x34
|
|
bl sub_027EAD50
|
|
mov fp, r0
|
|
mov r8, #0
|
|
b _027F38AC
|
|
_027F38A0:
|
|
bl sub_027EADB8
|
|
strh r0, [sb], #2
|
|
add r8, r8, #2
|
|
_027F38AC:
|
|
cmp r8, fp
|
|
blo _027F38A0
|
|
mov r0, r4
|
|
bl sub_027F107C
|
|
b _027F3B08
|
|
_027F38C0:
|
|
cmp r0, #3
|
|
mov r0, r8
|
|
bne _027F398C
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x20
|
|
bne _027F38E8
|
|
mov r0, r8
|
|
bl sub_027EC060
|
|
cmp r0, #0
|
|
bne _027F38F4
|
|
_027F38E8:
|
|
mov r7, #1
|
|
mov r5, r7
|
|
b _027F3B08
|
|
_027F38F4:
|
|
ldrh r0, [sl, #2]
|
|
bl sub_027EC060
|
|
bl sub_027EADA0
|
|
add r0, sl, #0x33
|
|
add r7, sl, #0x34
|
|
bl sub_027EAD50
|
|
mov r4, r0
|
|
mov r5, #0
|
|
b _027F3930
|
|
_027F3918:
|
|
bl sub_027EADB8
|
|
ldrh r1, [r7], #2
|
|
cmp r1, r0
|
|
movne r0, #0
|
|
bne _027F3960
|
|
add r5, r5, #1
|
|
_027F3930:
|
|
cmp r5, r4, lsr #1
|
|
blo _027F3918
|
|
tst r4, #1
|
|
beq _027F395C
|
|
bl sub_027EADB8
|
|
ldrh r1, [r7]
|
|
and r0, r0, #0xff
|
|
and r1, r1, #0xff
|
|
cmp r1, r0
|
|
movne r0, #0
|
|
bne _027F3960
|
|
_027F395C:
|
|
mov r0, #1
|
|
_027F3960:
|
|
cmp r0, #0
|
|
mov r0, r8
|
|
mov r1, #0
|
|
mov r5, #1
|
|
bne _027F3980
|
|
mov r7, #0xf
|
|
bl sub_027EBE6C
|
|
b _027F3B08
|
|
_027F3980:
|
|
bl sub_027EBE6C
|
|
mov r7, #0
|
|
b _027F3B08
|
|
_027F398C:
|
|
mov r1, #0
|
|
bl sub_027EBE6C
|
|
mov r7, #0xe
|
|
mov r6, #2
|
|
mov r5, #1
|
|
b _027F3B08
|
|
_027F39A4:
|
|
ldr r1, [sb, #0x18]
|
|
ldrh r0, [r1, #0x16]
|
|
cmp r0, #1
|
|
bne _027F3B08
|
|
add r0, r1, #0x10
|
|
add r1, sl, #0x1e
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
beq _027F3B08
|
|
ldrh r0, [sl, #0x2e]
|
|
cmp r0, #2
|
|
bne _027F3A94
|
|
ldrh r0, [sb]
|
|
cmp r0, #0x31
|
|
bne _027F3B08
|
|
ldrh r0, [sl, #0x30]
|
|
cmp r0, #0
|
|
beq _027F3A28
|
|
bl sub_027EABE0
|
|
mov r0, #0x35
|
|
strh r0, [sb]
|
|
ldr r0, [sb, #0x1c]
|
|
mov r1, #0xc
|
|
strh r1, [r0, #4]
|
|
mov r0, #2
|
|
ldrh r3, [sl, #0x30]
|
|
ldr r2, [sb, #0x1c]
|
|
mov r1, r0
|
|
strh r3, [r2, #6]
|
|
bl sub_037F8598
|
|
mov r0, #0x20
|
|
bl sub_037F9238
|
|
b _027F3B08
|
|
_027F3A28:
|
|
mov r1, #0x33
|
|
add r0, sl, #0x33
|
|
strh r1, [sb]
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
add r0, sl, #0x1e
|
|
mov r2, #1
|
|
bl sub_027F1DFC
|
|
movs r4, r0
|
|
beq _027F3B08
|
|
ldrh r1, [r4, #0x14]
|
|
add r0, sl, #0x2c
|
|
orr r1, r1, #0x4000
|
|
strh r1, [r4, #0x14]
|
|
ldrh r2, [sl, #6]
|
|
add r1, r4, #0x2c
|
|
add r2, r2, #1
|
|
bl sub_037FDF9C
|
|
ldrh r1, [sl, #0x2c]
|
|
mov r0, #3
|
|
strh r1, [r4, #0x2c]
|
|
strh r0, [r4, #0x2e]
|
|
mov r1, #0
|
|
mov r0, r4
|
|
strh r1, [r4, #0x30]
|
|
bl sub_027F107C
|
|
b _027F3B08
|
|
_027F3A94:
|
|
cmp r0, #4
|
|
ldreqh r0, [sb]
|
|
cmpeq r0, #0x33
|
|
bne _027F3B08
|
|
bl sub_027EABE0
|
|
ldrh r0, [sl, #0x30]
|
|
cmp r0, #0
|
|
ldrne r0, [sb, #0x1c]
|
|
movne r1, #0xc
|
|
strneh r1, [r0, #4]
|
|
ldrneh r1, [sl, #0x30]
|
|
bne _027F3AD8
|
|
mov r0, #0x30
|
|
bl sub_037F9238
|
|
ldr r0, [sb, #0x1c]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
_027F3AD8:
|
|
ldr r0, [sb, #0x1c]
|
|
mov r2, #0x35
|
|
strh r1, [r0, #6]
|
|
mov r0, #2
|
|
mov r1, r0
|
|
strh r2, [sb]
|
|
bl sub_037F8598
|
|
b _027F3B08
|
|
_027F3AF8:
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
moveq r7, #0xd
|
|
moveq r5, #1
|
|
_027F3B08:
|
|
cmp r5, #0
|
|
beq _027F3B44
|
|
cmp r7, #0
|
|
movne r2, #1
|
|
moveq r2, #0
|
|
add r0, sl, #0x1e
|
|
mov r1, #0
|
|
bl sub_027F1DFC
|
|
cmp r0, #0
|
|
beq _027F3B44
|
|
ldrh r1, [sl, #0x2c]
|
|
strh r1, [r0, #0x2c]
|
|
strh r6, [r0, #0x2e]
|
|
strh r7, [r0, #0x30]
|
|
bl sub_027F107C
|
|
_027F3B44:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F3B4C: .word 0x0380FFF4
|
|
_027F3B50: .word 0x048080B0
|
|
_027F3B54: .word 0x0480819C
|
|
_027F3B58: .word 0x04808032
|
|
_027F3B5C: .word 0x04808044
|
|
arm_func_end sub_027F35C0
|
|
|
|
arm_func_start sub_027F3B60
|
|
sub_027F3B60: ; 0x027F3B60
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _027F3C0C ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
ldrh r5, [r4, #2]
|
|
add r1, r0, #0x344
|
|
ldrh r0, [r1, #0xc]
|
|
cmp r0, #1
|
|
beq _027F3B94
|
|
cmp r0, #2
|
|
cmpne r0, #3
|
|
beq _027F3BCC
|
|
b _027F3C04
|
|
_027F3B94:
|
|
mov r0, r5
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x20
|
|
bls _027F3C04
|
|
mov r0, r5, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x20
|
|
bl sub_027EBC44
|
|
ldrh r1, [r4, #0x2c]
|
|
add r0, r4, #0x1e
|
|
bl sub_027EDBE4
|
|
mov r0, r5
|
|
bl sub_027F0D60
|
|
b _027F3C04
|
|
_027F3BCC:
|
|
ldrh r0, [r1, #8]
|
|
cmp r0, #0x20
|
|
bls _027F3C04
|
|
add r0, r4, #0x1e
|
|
add r1, r1, #0x82
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
beq _027F3C04
|
|
mov r0, #0x20
|
|
bl sub_037F9238
|
|
bl sub_027EA03C
|
|
ldrh r1, [r4, #0x2c]
|
|
add r0, r4, #0x1e
|
|
bl sub_027EDBE4
|
|
_027F3C04:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F3C0C: .word 0x0380FFF4
|
|
arm_func_end sub_027F3B60
|
|
|
|
arm_func_start sub_027F3C10
|
|
sub_027F3C10: ; 0x027F3C10
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r1, _027F3F30 ; =0x0380FFF4
|
|
mov sb, r0
|
|
ldr r0, [r1]
|
|
ldr r5, [sb]
|
|
add r4, r0, #0x344
|
|
ldrh r0, [r4, #0x7a]
|
|
ldr sl, _027F3F30 ; =0x0380FFF4
|
|
strh r0, [sb, #0x12]
|
|
ldrh r0, [sb, #0xc]
|
|
tst r0, #0x800
|
|
ldrneh r0, [sb, #0xa]
|
|
orrne r0, r0, #1
|
|
strneh r0, [sb, #0xa]
|
|
ldrh r6, [sb, #8]
|
|
b _027F3EA4
|
|
_027F3C50:
|
|
mov r0, r5
|
|
bl sub_027EAD50
|
|
mov r8, r0
|
|
add r0, r5, #1
|
|
add r5, r5, #2
|
|
bl sub_027EAD50
|
|
mov r7, r0
|
|
cmp r8, #6
|
|
addls pc, pc, r8, lsl #2
|
|
b _027F3C94
|
|
_027F3C78: ; jump table
|
|
b _027F3CA0 ; case 0
|
|
b _027F3D0C ; case 1
|
|
b _027F3E98 ; case 2
|
|
b _027F3D70 ; case 3
|
|
b _027F3DDC ; case 4
|
|
b _027F3DBC ; case 5
|
|
b _027F3E98 ; case 6
|
|
_027F3C94:
|
|
cmp r8, #0xdd
|
|
beq _027F3DFC
|
|
b _027F3E7C
|
|
_027F3CA0:
|
|
cmp r7, #0x20
|
|
bhi _027F3E98
|
|
ldrh r1, [sb, #0xc]
|
|
sub r0, r5, #2
|
|
orr r1, r1, #1
|
|
strh r1, [sb, #0xc]
|
|
str r0, [sb, #0x1c]
|
|
cmp r7, #0
|
|
bne _027F3CDC
|
|
ldrh r0, [sb, #0xc]
|
|
tst r0, #0x800
|
|
ldrneh r0, [sb, #0xa]
|
|
orrne r0, r0, #1
|
|
strneh r0, [sb, #0xa]
|
|
bne _027F3E98
|
|
_027F3CDC:
|
|
ldrh r1, [sb, #0xa]
|
|
mov r0, r7, lsl #0x10
|
|
bic r2, r1, #1
|
|
strh r2, [sb, #0xa]
|
|
mov r1, r5
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027EA3A4
|
|
cmp r0, #0
|
|
ldrneh r0, [sb, #0xa]
|
|
orrne r0, r0, #1
|
|
strneh r0, [sb, #0xa]
|
|
b _027F3E98
|
|
_027F3D0C:
|
|
cmp r7, #1
|
|
blo _027F3E98
|
|
ldrh r1, [sb, #0xc]
|
|
sub r0, r5, #2
|
|
orr r1, r1, #4
|
|
strh r1, [sb, #0xc]
|
|
add r1, sb, #0x14
|
|
bl sub_027EA4C4
|
|
ldrh r0, [r4, #0x60]
|
|
ldrh r1, [r4, #0x62]
|
|
ldrh r2, [sb, #0x14]
|
|
orr r1, r0, r1
|
|
mvn r1, r1
|
|
tst r2, r1
|
|
ldreqh r1, [sb, #0x16]
|
|
orreq r1, r2, r1
|
|
andeq r1, r0, r1
|
|
cmpeq r0, r1
|
|
ldreqh r0, [sb, #0xa]
|
|
orreq r0, r0, #4
|
|
streqh r0, [sb, #0xa]
|
|
ldrneh r0, [sb, #0xa]
|
|
bicne r0, r0, #4
|
|
strneh r0, [sb, #0xa]
|
|
b _027F3E98
|
|
_027F3D70:
|
|
cmp r7, #1
|
|
blo _027F3E98
|
|
ldrh r1, [sb, #0xc]
|
|
mov r0, r5
|
|
orr r1, r1, #2
|
|
strh r1, [sb, #0xc]
|
|
bl sub_027EAD50
|
|
strh r0, [sb, #0x12]
|
|
ldr r0, [sl]
|
|
ldrh r1, [sb, #0x12]
|
|
ldr r0, [r0, #0x41c]
|
|
ldrh r0, [r0, #0x4a]
|
|
cmp r1, r0
|
|
ldrh r0, [sb, #0xa]
|
|
orreq r0, r0, #2
|
|
streqh r0, [sb, #0xa]
|
|
bicne r0, r0, #2
|
|
strneh r0, [sb, #0xa]
|
|
b _027F3E98
|
|
_027F3DBC:
|
|
cmp r7, #3
|
|
blo _027F3E98
|
|
ldrh r1, [sb, #0xc]
|
|
sub r0, r5, #2
|
|
orr r1, r1, #0x100
|
|
strh r1, [sb, #0xc]
|
|
str r0, [sb, #0x24]
|
|
b _027F3E98
|
|
_027F3DDC:
|
|
cmp r7, #6
|
|
blo _027F3E98
|
|
ldrh r1, [sb, #0xc]
|
|
sub r0, r5, #2
|
|
orr r1, r1, #0x200
|
|
strh r1, [sb, #0xc]
|
|
str r0, [sb, #0x20]
|
|
b _027F3E98
|
|
_027F3DFC:
|
|
cmp r7, #8
|
|
blo _027F3E44
|
|
mov r0, r5
|
|
bl sub_027EAD50
|
|
cmp r0, #0
|
|
bne _027F3E44
|
|
add r0, r5, #1
|
|
bl sub_027EAD50
|
|
cmp r0, #9
|
|
bne _027F3E44
|
|
add r0, r5, #2
|
|
bl sub_027EAD50
|
|
cmp r0, #0xbf
|
|
bne _027F3E44
|
|
add r0, r5, #3
|
|
bl sub_027EAD50
|
|
cmp r0, #0
|
|
beq _027F3E64
|
|
_027F3E44:
|
|
ldrh r1, [sb, #0x18]
|
|
add r0, r7, #2
|
|
add r1, r1, #1
|
|
strh r1, [sb, #0x18]
|
|
ldrh r1, [sb, #0x1a]
|
|
add r0, r1, r0
|
|
strh r0, [sb, #0x1a]
|
|
b _027F3E98
|
|
_027F3E64:
|
|
ldrh r1, [sb, #0xc]
|
|
sub r0, r5, #2
|
|
orr r1, r1, #0x400
|
|
strh r1, [sb, #0xc]
|
|
str r0, [sb, #0x28]
|
|
b _027F3E98
|
|
_027F3E7C:
|
|
ldrh r1, [sb, #0x18]
|
|
add r0, r7, #2
|
|
add r1, r1, #1
|
|
strh r1, [sb, #0x18]
|
|
ldrh r1, [sb, #0x1a]
|
|
add r0, r1, r0
|
|
strh r0, [sb, #0x1a]
|
|
_027F3E98:
|
|
add r0, r7, #2
|
|
add r5, r5, r7
|
|
sub r6, r6, r0
|
|
_027F3EA4:
|
|
cmp r6, #0
|
|
bgt _027F3C50
|
|
ldrh r0, [sb, #0xc]
|
|
tst r0, #8
|
|
beq _027F3EDC
|
|
ldrh r0, [r4, #0x64]
|
|
tst r0, #1
|
|
bne _027F3ED0
|
|
ldrh r0, [sb, #4]
|
|
tst r0, #0x8000
|
|
beq _027F3EDC
|
|
_027F3ED0:
|
|
ldrh r0, [sb, #0xa]
|
|
orr r0, r0, #8
|
|
strh r0, [sb, #0xa]
|
|
_027F3EDC:
|
|
ldrh r0, [sb, #0xc]
|
|
tst r0, #0x30
|
|
beq _027F3F28
|
|
ldrh r1, [sb, #6]
|
|
ldrh r0, [r4, #0x7c]
|
|
and r1, r1, #3
|
|
and r0, r0, #3
|
|
cmp r1, r0
|
|
ldreqh r0, [sb, #0xa]
|
|
orreq r0, r0, #0x10
|
|
streqh r0, [sb, #0xa]
|
|
ldrh r1, [sb, #6]
|
|
ldrh r0, [r4, #0x7c]
|
|
and r1, r1, #0x10
|
|
and r0, r0, #0x10
|
|
cmp r1, r0
|
|
ldreqh r0, [sb, #0xa]
|
|
orreq r0, r0, #0x20
|
|
streqh r0, [sb, #0xa]
|
|
_027F3F28:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F3F30: .word 0x0380FFF4
|
|
arm_func_end sub_027F3C10
|
|
|
|
arm_func_start sub_027F3F34
|
|
sub_027F3F34: ; 0x027F3F34
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x2c
|
|
ldr r0, _027F45DC ; =0x0380FFF4
|
|
mvn r1, #0
|
|
ldr r4, [r0]
|
|
add sl, r4, #0x17c
|
|
ldr r6, [sl, #0x60]
|
|
add r0, r4, #0x300
|
|
ldrh r5, [r0, #0x50]
|
|
cmp r6, r1
|
|
beq _027F45D0
|
|
ldrh r0, [r6, #0x28]
|
|
tst r0, #1
|
|
ldrne r0, [r4, #0x568]
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x568]
|
|
ldreq r0, [r4, #0x564]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x564]
|
|
ldrh r0, [r6, #0x18]
|
|
ldr r2, [r4, #0x560]
|
|
and r1, r0, #0xf0
|
|
mov r0, r1, asr #3
|
|
add r0, r1, r0, lsr #28
|
|
mov r0, r0, asr #4
|
|
sub r0, r0, #1
|
|
add r0, r2, r0
|
|
str r0, [r4, #0x560]
|
|
ldrh r1, [r6, #0x24]
|
|
add r0, r6, #0x2e
|
|
mov r2, r1, lsl #0x1c
|
|
mov r1, r1, lsl #0x18
|
|
mov r8, r2, lsr #0x1e
|
|
mov sb, r1, lsr #0x1c
|
|
bl sub_027EB9A8
|
|
mov r7, r0
|
|
strh r7, [r6, #0x12]
|
|
cmp r7, #0xff
|
|
bne _027F4024
|
|
mov r0, #0
|
|
strh r0, [r6, #0x12]
|
|
cmp r5, #1
|
|
bne _027F45AC
|
|
cmp r8, #0
|
|
bne _027F45AC
|
|
cmp sb, #0
|
|
beq _027F4018
|
|
cmp sb, #4
|
|
beq _027F400C
|
|
cmp sb, #0xb
|
|
bne _027F45AC
|
|
add r0, r6, #0x10
|
|
bl sub_027F35C0
|
|
b _027F45AC
|
|
_027F400C:
|
|
add r0, r6, #0x10
|
|
bl sub_027F313C
|
|
b _027F45AC
|
|
_027F4018:
|
|
add r0, r6, #0x10
|
|
bl sub_027F2F6C
|
|
b _027F45AC
|
|
_027F4024:
|
|
bl sub_027EBE8C
|
|
ldrh r1, [r6, #0x22]
|
|
mov r0, r7, lsl #0x10
|
|
and r1, r1, #0xff
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027EBD2C
|
|
cmp r8, #0
|
|
bne _027F4070
|
|
ldrh fp, [r6, #0x3a]
|
|
mov r0, r7
|
|
bl sub_027EC080
|
|
cmp fp, r0
|
|
ldreq r0, [r4, #0x578]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x578]
|
|
beq _027F45AC
|
|
mov r0, r7
|
|
mov r1, fp
|
|
bl sub_027EBE4C
|
|
_027F4070:
|
|
cmp r5, #1
|
|
beq _027F4088
|
|
cmp r5, #2
|
|
cmpne r5, #3
|
|
beq _027F4328
|
|
b _027F45AC
|
|
_027F4088:
|
|
ldrh r1, [r6, #0x24]
|
|
mov r0, r7, lsl #0x10
|
|
mov r1, r1, lsl #0x13
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, r1, lsr #0x1f
|
|
bl sub_027EBD4C
|
|
cmp r8, #0
|
|
bne _027F42C4
|
|
cmp sb, #0xc
|
|
addls pc, pc, sb, lsl #2
|
|
b _027F45AC
|
|
_027F40B4: ; jump table
|
|
b _027F40F4 ; case 0
|
|
b _027F45AC ; case 1
|
|
b _027F4100 ; case 2
|
|
b _027F45AC ; case 3
|
|
b _027F4284 ; case 4
|
|
b _027F4290 ; case 5
|
|
b _027F45AC ; case 6
|
|
b _027F45AC ; case 7
|
|
b _027F40E8 ; case 8
|
|
b _027F45AC ; case 9
|
|
b _027F42A0 ; case 10
|
|
b _027F42AC ; case 11
|
|
b _027F42B8 ; case 12
|
|
_027F40E8:
|
|
add r0, r6, #0x10
|
|
bl sub_027F2840
|
|
b _027F45AC
|
|
_027F40F4:
|
|
add r0, r6, #0x10
|
|
bl sub_027F2F6C
|
|
b _027F45AC
|
|
_027F4100:
|
|
ldr r0, _027F45DC ; =0x0380FFF4
|
|
ldrh r4, [r6, #0x16]
|
|
ldr r5, [r0]
|
|
cmp r4, #0xa
|
|
bls _027F45AC
|
|
add r0, r5, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #1
|
|
bne _027F45AC
|
|
add r0, r6, #0x2e
|
|
mov r1, #0x30
|
|
bl sub_027F1FF4
|
|
cmp r0, #0
|
|
bne _027F45AC
|
|
ldrh r7, [r6, #0x12]
|
|
mov r0, r7
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x30
|
|
bhs _027F4180
|
|
add r0, r6, #0x2e
|
|
mov r1, #0xc0
|
|
bl sub_027F1FF4
|
|
cmp r0, #0
|
|
bne _027F45AC
|
|
add r0, r6, #0x2e
|
|
mov r1, #6
|
|
mov r2, #1
|
|
bl sub_027F1EBC
|
|
cmp r0, #0
|
|
beq _027F45AC
|
|
bl sub_027F107C
|
|
b _027F45AC
|
|
_027F4180:
|
|
mov r0, r7
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x40
|
|
mov r0, r7
|
|
bne _027F41AC
|
|
mov r1, #0x30
|
|
bl sub_027EBC44
|
|
add r0, r6, #0x2e
|
|
mov r1, #1
|
|
bl sub_027EDE44
|
|
b _027F41B8
|
|
_027F41AC:
|
|
bl sub_027EC0CC
|
|
cmp r0, #0
|
|
bne _027F45AC
|
|
_027F41B8:
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
mov r2, #0x2c
|
|
bl sub_037FDFD0
|
|
add r3, r6, #0x46
|
|
sub r2, r4, #0xa
|
|
mov r1, #0x800
|
|
str r3, [sp]
|
|
strh r2, [sp, #8]
|
|
strh r1, [sp, #0xc]
|
|
add r0, sp, #0
|
|
bl sub_027F3C10
|
|
ldrh r1, [r6, #0x3c]
|
|
ldr r0, _027F45E0 ; =0x0000FFC2
|
|
tst r1, r0
|
|
bne _027F422C
|
|
add r0, r5, #0x300
|
|
ldrh r2, [r0, #0x34]
|
|
cmp r2, #0
|
|
moveq r0, r1, lsl #0x1b
|
|
moveq r0, r0, lsr #0x1f
|
|
cmpeq r0, #1
|
|
beq _027F422C
|
|
cmp r2, #0
|
|
beq _027F4234
|
|
ldrh r0, [r6, #0x3c]
|
|
mov r0, r0, lsl #0x1b
|
|
movs r0, r0, lsr #0x1f
|
|
bne _027F4234
|
|
_027F422C:
|
|
mov r1, #0xa
|
|
b _027F4268
|
|
_027F4234:
|
|
mov r0, r7
|
|
bl sub_027EBE0C
|
|
ldrh r0, [sp, #0xa]
|
|
tst r0, #1
|
|
moveq r1, #1
|
|
beq _027F4268
|
|
tst r0, #4
|
|
moveq r1, #0x12
|
|
beq _027F4268
|
|
ldrh r1, [sp, #0x16]
|
|
mov r0, r7
|
|
bl sub_027EBE2C
|
|
mov r1, #0
|
|
_027F4268:
|
|
ldr r2, [sp, #0x1c]
|
|
mov r0, r7
|
|
bl sub_027F19F0
|
|
cmp r0, #0
|
|
beq _027F45AC
|
|
bl sub_027F107C
|
|
b _027F45AC
|
|
_027F4284:
|
|
add r0, r6, #0x10
|
|
bl sub_027F313C
|
|
b _027F45AC
|
|
_027F4290:
|
|
add r0, r6, #0x10
|
|
mov r1, #0
|
|
bl sub_027F31F0
|
|
b _027F45AC
|
|
_027F42A0:
|
|
add r0, r6, #0x10
|
|
bl sub_027F2E8C
|
|
b _027F45AC
|
|
_027F42AC:
|
|
add r0, r6, #0x10
|
|
bl sub_027F35C0
|
|
b _027F45AC
|
|
_027F42B8:
|
|
add r0, r6, #0x10
|
|
bl sub_027F3B60
|
|
b _027F45AC
|
|
_027F42C4:
|
|
cmp r8, #1
|
|
bne _027F45AC
|
|
cmp sb, #0xa
|
|
bne _027F45AC
|
|
ldr r0, _027F45DC ; =0x0380FFF4
|
|
ldrh r4, [r6, #0x12]
|
|
ldr r1, [r0]
|
|
mov r0, r4
|
|
add r5, r1, #0x17c
|
|
bl sub_027EBFE0
|
|
cmp r0, #0x40
|
|
bne _027F45AC
|
|
mov r0, r4
|
|
bl sub_027EBDE8
|
|
ldrh r0, [r5, #0x2c]
|
|
cmp r0, #0
|
|
beq _027F4310
|
|
mov r0, #1
|
|
bl sub_027EFEF4
|
|
_027F4310:
|
|
ldrh r0, [r5, #0x20]
|
|
cmp r0, #0
|
|
beq _027F45AC
|
|
mov r0, #0
|
|
bl sub_027EFEF4
|
|
b _027F45AC
|
|
_027F4328:
|
|
cmp r8, #0
|
|
bne _027F45AC
|
|
cmp sb, #0xc
|
|
addls pc, pc, sb, lsl #2
|
|
b _027F45AC
|
|
_027F433C: ; jump table
|
|
b _027F45AC ; case 0
|
|
b _027F437C ; case 1
|
|
b _027F45AC ; case 2
|
|
b _027F4478 ; case 3
|
|
b _027F45AC ; case 4
|
|
b _027F457C ; case 5
|
|
b _027F45AC ; case 6
|
|
b _027F45AC ; case 7
|
|
b _027F4370 ; case 8
|
|
b _027F45AC ; case 9
|
|
b _027F458C ; case 10
|
|
b _027F4598 ; case 11
|
|
b _027F45A4 ; case 12
|
|
_027F4370:
|
|
add r0, r6, #0x10
|
|
bl sub_027F2840
|
|
b _027F45AC
|
|
_027F437C:
|
|
ldr r0, _027F45DC ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r5, r0, #0x344
|
|
ldrh r1, [r5, #0xc]
|
|
add r0, r0, #4
|
|
cmp r1, #2
|
|
add r4, r0, #0x400
|
|
cmpne r1, #3
|
|
bne _027F45AC
|
|
ldrh r0, [r4]
|
|
cmp r0, #0x51
|
|
bne _027F45AC
|
|
ldr r0, [r4, #0x18]
|
|
add r1, r6, #0x2e
|
|
add r0, r0, #0x10
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
beq _027F45AC
|
|
bl sub_027EABE0
|
|
ldrh r0, [r6, #0x3e]
|
|
cmp r0, #0
|
|
bne _027F4418
|
|
ldrh r1, [r6, #0x40]
|
|
ldr r0, _027F45E4 ; =0x00000FFF
|
|
and r0, r1, r0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027EA000
|
|
ldrh r0, [r5, #0x6a]
|
|
bl sub_027F1F50
|
|
add r0, r5, #0x82
|
|
add r1, r6, #0x2e
|
|
bl sub_027EA0E0
|
|
add r0, r6, #0x2e
|
|
bl sub_027EB900
|
|
strh r0, [r5, #0x88]
|
|
ldrh r0, [r5, #0x88]
|
|
mov r1, #0x40
|
|
bl sub_027EBC44
|
|
_027F4418:
|
|
ldrh r0, [r6, #0x3e]
|
|
cmp r0, #0
|
|
ldr r0, [r4, #0x1c]
|
|
movne r1, #0xc
|
|
strneh r1, [r0, #4]
|
|
ldrneh r1, [r6, #0x3e]
|
|
ldrne r0, [r4, #0x1c]
|
|
strneh r1, [r0, #6]
|
|
bne _027F4454
|
|
mov r2, #0
|
|
strh r2, [r0, #4]
|
|
ldr r1, [r4, #0x1c]
|
|
mov r0, #0x40
|
|
strh r2, [r1, #6]
|
|
bl sub_037F9238
|
|
_027F4454:
|
|
ldrh r1, [r5, #0x6a]
|
|
ldr r0, [r4, #0x1c]
|
|
mov r2, #0x53
|
|
strh r1, [r0, #8]
|
|
mov r0, #2
|
|
mov r1, #3
|
|
strh r2, [r4]
|
|
bl sub_037F8598
|
|
b _027F45AC
|
|
_027F4478:
|
|
ldr r0, _027F45DC ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r5, r0, #0x344
|
|
ldrh r1, [r5, #0xc]
|
|
add r0, r0, #4
|
|
cmp r1, #2
|
|
add r4, r0, #0x400
|
|
cmpne r1, #3
|
|
bne _027F45AC
|
|
ldrh r0, [r4]
|
|
cmp r0, #0x61
|
|
bne _027F45AC
|
|
ldr r0, [r4, #0x18]
|
|
add r1, r6, #0x2e
|
|
add r0, r0, #0x10
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
beq _027F45AC
|
|
bl sub_027EABE0
|
|
ldrh r0, [r6, #0x3e]
|
|
cmp r0, #0
|
|
bne _027F451C
|
|
ldrh r1, [r6, #0x40]
|
|
ldr r0, _027F45E4 ; =0x00000FFF
|
|
and r0, r1, r0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_027EA000
|
|
ldrh r0, [r5, #0x6a]
|
|
bl sub_027F1F50
|
|
add r0, r5, #0x82
|
|
add r1, r6, #0x2e
|
|
bl sub_027EA0E0
|
|
add r0, r6, #0x2e
|
|
bl sub_027EB900
|
|
strh r0, [r5, #0x88]
|
|
ldrh r0, [r5, #0x88]
|
|
mov r1, #0x40
|
|
bl sub_027EBC44
|
|
mov r0, #0x40
|
|
bl sub_037F9238
|
|
_027F451C:
|
|
ldrh r0, [r6, #0x3e]
|
|
cmp r0, #0
|
|
ldr r0, [r4, #0x1c]
|
|
movne r1, #0xc
|
|
strneh r1, [r0, #4]
|
|
ldrneh r1, [r6, #0x3e]
|
|
ldrne r0, [r4, #0x1c]
|
|
strneh r1, [r0, #6]
|
|
bne _027F4558
|
|
mov r2, #0
|
|
strh r2, [r0, #4]
|
|
ldr r1, [r4, #0x1c]
|
|
mov r0, #0x40
|
|
strh r2, [r1, #6]
|
|
bl sub_037F9238
|
|
_027F4558:
|
|
ldrh r1, [r5, #0x6a]
|
|
ldr r0, [r4, #0x1c]
|
|
mov r2, #0x63
|
|
strh r1, [r0, #8]
|
|
mov r0, #2
|
|
mov r1, #4
|
|
strh r2, [r4]
|
|
bl sub_037F8598
|
|
b _027F45AC
|
|
_027F457C:
|
|
add r0, r6, #0x10
|
|
mov r1, #0
|
|
bl sub_027F31F0
|
|
b _027F45AC
|
|
_027F458C:
|
|
add r0, r6, #0x10
|
|
bl sub_027F2E8C
|
|
b _027F45AC
|
|
_027F4598:
|
|
add r0, r6, #0x10
|
|
bl sub_027F35C0
|
|
b _027F45AC
|
|
_027F45A4:
|
|
add r0, r6, #0x10
|
|
bl sub_027F3B60
|
|
_027F45AC:
|
|
mov r1, r6
|
|
add r0, sl, #0x60
|
|
bl sub_037F8908
|
|
ldrh r0, [sl, #0x68]
|
|
cmp r0, #0
|
|
beq _027F45D0
|
|
mov r0, #1
|
|
mov r1, #7
|
|
bl sub_037F8598
|
|
_027F45D0:
|
|
add sp, sp, #0x2c
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F45DC: .word 0x0380FFF4
|
|
_027F45E0: .word 0x0000FFC2
|
|
_027F45E4: .word 0x00000FFF
|
|
arm_func_end sub_027F3F34
|
|
|
|
arm_func_start sub_027F45E8
|
|
sub_027F45E8: ; 0x027F45E8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x18
|
|
ldr r0, _027F4B00 ; =0x0380FFF4
|
|
mvn r1, #0
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x17c
|
|
ldr r5, [r0, #0x6c]
|
|
str r0, [sp, #4]
|
|
cmp r5, r1
|
|
beq _027F4AF4
|
|
add r0, r2, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0x40
|
|
bne _027F4AC8
|
|
ldrh r1, [r5, #0x20]
|
|
ldr r0, _027F4B04 ; =0x000005FC
|
|
cmp r1, r0
|
|
bhi _027F4AC8
|
|
ldrh r4, [r5, #0x24]
|
|
add r0, sp, #8
|
|
tst r4, #0x100
|
|
beq _027F4660
|
|
add r1, r5, #0x34
|
|
bl sub_027EA0E0
|
|
tst r4, #0x200
|
|
bne _027F4AC8
|
|
add r0, sp, #0xe
|
|
add r1, r5, #0x2e
|
|
bl sub_027EA0E0
|
|
b _027F4688
|
|
_027F4660:
|
|
add r1, r5, #0x28
|
|
bl sub_027EA0E0
|
|
tst r4, #0x200
|
|
add r0, sp, #0xe
|
|
beq _027F4680
|
|
add r1, r5, #0x34
|
|
bl sub_027EA0E0
|
|
b _027F4688
|
|
_027F4680:
|
|
add r1, r5, #0x2e
|
|
bl sub_027EA0E0
|
|
_027F4688:
|
|
ldrh r0, [r5, #0x3a]
|
|
tst r4, #0x400
|
|
strh r0, [sp, #0x14]
|
|
beq _027F48C0
|
|
ldrh r0, [r5, #0x3a]
|
|
mov r0, r0, lsl #0x1c
|
|
movs r0, r0, lsr #0x1c
|
|
bne _027F48C0
|
|
ldr r0, _027F4B00 ; =0x0380FFF4
|
|
mvn r6, #0
|
|
ldr r0, [r0]
|
|
mov r7, #0
|
|
add r0, r0, #0xe4
|
|
add r8, r0, #0x400
|
|
add fp, sp, #8
|
|
mov r4, #0x18
|
|
b _027F47D0
|
|
_027F46CC:
|
|
mul sb, r7, r4
|
|
ldrh r0, [r8, sb]
|
|
add sl, r8, sb
|
|
cmp r0, #0
|
|
beq _027F47C8
|
|
mov r1, fp
|
|
add r0, sl, #4
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
beq _027F47CC
|
|
add r1, sp, #0xe
|
|
add r0, sl, #0xa
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
beq _027F47CC
|
|
ldrh r0, [sp, #0x14]
|
|
ldrh r1, [sl, #0x10]
|
|
mov r0, r0, lsl #0x10
|
|
mov r2, r0, lsr #0x14
|
|
mov r0, r1, lsl #0x10
|
|
cmp r2, r0, lsr #20
|
|
bne _027F47CC
|
|
ldrh r0, [r5, #0x18]
|
|
mov r1, r1, lsl #0x1c
|
|
and r2, r0, #0xf0
|
|
mov r0, r2, asr #3
|
|
add r0, r2, r0, lsr #28
|
|
mov r7, r0, asr #4
|
|
subs r0, r7, r1, lsr #28
|
|
beq _027F4AC8
|
|
tst r0, #0x80000000
|
|
bne _027F4AC8
|
|
mov r0, sl
|
|
ldr r4, [r0, #0x14]
|
|
ldrh r0, [r5, #0x20]
|
|
ldrh r3, [r4, #0x20]
|
|
sub r0, r0, r3
|
|
subs r6, r0, #0x18
|
|
beq _027F4AC8
|
|
tst r6, #0x80000000
|
|
bne _027F4AC8
|
|
add r0, r5, #0x3c
|
|
add r1, r4, #0x3c
|
|
mov r2, r6
|
|
add r0, r0, r3
|
|
add r1, r1, r3
|
|
bl sub_037FDF9C
|
|
ldrh r1, [r4, #0x20]
|
|
mov r0, r7, lsl #0x10
|
|
add r1, r1, r6
|
|
strh r1, [r4, #0x20]
|
|
ldrh r1, [sl, #0x10]
|
|
mov r0, r0, lsr #0x10
|
|
bic r1, r1, #0xf
|
|
and r0, r0, #0xf
|
|
orr r1, r1, r0
|
|
ldr r0, _027F4B00 ; =0x0380FFF4
|
|
strh r1, [sl, #0x10]
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, #0x560]
|
|
add r0, r0, r7
|
|
str r0, [r1, #0x560]
|
|
b _027F4AC8
|
|
_027F47C8:
|
|
mov r6, r7
|
|
_027F47CC:
|
|
add r7, r7, #1
|
|
_027F47D0:
|
|
cmp r7, #3
|
|
blo _027F46CC
|
|
mvn r0, #0
|
|
cmp r6, r0
|
|
beq _027F4AC8
|
|
ldr r0, _027F4B00 ; =0x0380FFF4
|
|
ldr r1, _027F4B08 ; =0x00000622
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_037F886C
|
|
movs r4, r0
|
|
beq _027F48B4
|
|
mov r0, #0x18
|
|
mul r7, r6, r0
|
|
add r6, r8, r7
|
|
add r0, sp, #8
|
|
add r1, r6, #4
|
|
mov r2, #0x10
|
|
bl sub_037FDF9C
|
|
mov r0, #5
|
|
strh r0, [r8, r7]
|
|
mov r0, r6
|
|
str r4, [r0, #0x14]
|
|
ldrh r2, [r5, #0x20]
|
|
add r0, r5, #0x18
|
|
add r1, r4, #0x18
|
|
add r2, r2, #0xc
|
|
bl sub_037FDF9C
|
|
ldr r0, _027F4B00 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x30c]
|
|
bl sub_037FDE88
|
|
ldrh r1, [r4, #0x18]
|
|
ldrh r0, [r6, #0x10]
|
|
and r1, r1, #0xf0
|
|
bic r3, r0, #0xf
|
|
mov r0, r1, asr #3
|
|
add r0, r1, r0, lsr #28
|
|
mov r1, r0, asr #4
|
|
mov r2, r1, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
and r2, r2, #0xf
|
|
orr r2, r3, r2
|
|
strh r2, [r6, #0x10]
|
|
ldr r2, _027F4B00 ; =0x0380FFF4
|
|
ldr r3, [r2]
|
|
ldr r2, [r3, #0x560]
|
|
add r0, r2, r0, asr #4
|
|
str r0, [r3, #0x560]
|
|
ldrh r0, [r5, #0x20]
|
|
sub r0, r0, #0x18
|
|
strh r0, [r4, #0x20]
|
|
ldrh r0, [r4, #0x20]
|
|
bl sub_03806DD4
|
|
mov r1, r6
|
|
strh r0, [r1, #2]
|
|
b _027F4AC8
|
|
_027F48B4:
|
|
mov r0, #4
|
|
bl sub_027EB06C
|
|
b _027F4AC8
|
|
_027F48C0:
|
|
ldr r1, _027F4B00 ; =0x0380FFF4
|
|
ldrh r0, [r5, #0x20]
|
|
ldr r4, [r1]
|
|
sub r1, r0, #0x18
|
|
add r0, r4, #0xe4
|
|
strh r1, [r5, #0x20]
|
|
add r8, r0, #0x400
|
|
mov r7, #0
|
|
b _027F497C
|
|
_027F48E4:
|
|
mov r0, #0x18
|
|
mul sb, r7, r0
|
|
ldrh r0, [r8, sb]
|
|
add sl, r8, sb
|
|
cmp r0, #0
|
|
beq _027F4978
|
|
add r1, sp, #8
|
|
add r0, sl, #4
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
beq _027F4978
|
|
add r1, sp, #0xe
|
|
add r0, sl, #0xa
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
beq _027F4978
|
|
ldrh r2, [sp, #0x14]
|
|
ldrh r0, [sl, #0x10]
|
|
mov r1, r2, lsl #0x10
|
|
mov r1, r1, lsr #0x14
|
|
mov r0, r0, lsl #0x10
|
|
cmp r1, r0, lsr #20
|
|
bne _027F4978
|
|
mov r1, sl
|
|
ldrh r0, [r1, #0x10]
|
|
sub fp, r0, r2
|
|
tst fp, #0x80000000
|
|
bne _027F4AC8
|
|
ldrh r0, [r1, #2]
|
|
ldrh r1, [r5, #0x20]
|
|
mul r0, fp, r0
|
|
str r0, [sp]
|
|
subs r6, r1, r0
|
|
beq _027F4AC8
|
|
tst r6, #0x80000000
|
|
beq _027F4984
|
|
b _027F4AC8
|
|
_027F4978:
|
|
add r7, r7, #1
|
|
_027F497C:
|
|
cmp r7, #3
|
|
blo _027F48E4
|
|
_027F4984:
|
|
cmp r7, #3
|
|
beq _027F4AC8
|
|
mov r0, #0x18
|
|
mul sb, r7, r0
|
|
add r0, r8, sb
|
|
ldr r1, [r0, #0x14]
|
|
ldr r0, _027F4B0C ; =0x000005E4
|
|
add r7, r1, #0x10
|
|
ldrh r1, [r7, #0x10]
|
|
add sl, r1, r6
|
|
cmp sl, r0
|
|
bls _027F49CC
|
|
add r0, r4, #0x188
|
|
sub r1, r7, #0x10
|
|
bl sub_037F8908
|
|
mov r0, #0
|
|
strh r0, [r8, sb]
|
|
b _027F4AC8
|
|
_027F49CC:
|
|
ldr r0, [sp]
|
|
add r3, r5, #0x3c
|
|
add r2, r7, #0x2c
|
|
add r1, r2, r1
|
|
add r0, r3, r0
|
|
add r2, r6, #1
|
|
bl sub_037FDF9C
|
|
strh sl, [r7, #0x10]
|
|
ldrh r1, [r5, #0x18]
|
|
add r0, r8, sb
|
|
ldrh r6, [r0, #0x10]
|
|
and r2, r1, #0xf0
|
|
mov r1, r2, asr #3
|
|
add r1, r2, r1, lsr #28
|
|
mov r3, r6, lsl #0x1c
|
|
rsb r2, fp, r1, asr #4
|
|
add r2, r2, r3, lsr #28
|
|
mov r2, r2, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
bic r3, r6, #0xf
|
|
and r2, r2, #0xf
|
|
orr r3, r3, r2
|
|
ldr r2, _027F4B00 ; =0x0380FFF4
|
|
strh r3, [r0, #0x10]
|
|
ldr r3, [r2]
|
|
ldr r2, [r3, #0x560]
|
|
add r1, r2, r1, asr #4
|
|
str r1, [r3, #0x560]
|
|
ldrh r1, [r5, #0x18]
|
|
tst r1, #0x100
|
|
bne _027F4AC8
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
ldrh r0, [r7, #8]
|
|
bic r0, r0, #0xf0
|
|
add r0, r0, #0x10
|
|
strh r0, [r7, #8]
|
|
ldrh r0, [r7, #0x10]
|
|
add r0, r0, #0x18
|
|
strh r0, [r7, #0x10]
|
|
ldrh r0, [r7, #8]
|
|
ands r0, r0, #0xf
|
|
beq _027F4AA0
|
|
cmp r0, #8
|
|
add r0, r4, #0x188
|
|
bne _027F4AC0
|
|
add r1, r4, #0x1c4
|
|
sub r2, r7, #0x10
|
|
bl sub_037F8988
|
|
mov r0, #2
|
|
mov r1, #6
|
|
bl sub_037F8598
|
|
b _027F4AC8
|
|
_027F4AA0:
|
|
add r0, r4, #0x188
|
|
add r1, r4, #0x1dc
|
|
sub r2, r7, #0x10
|
|
bl sub_037F8988
|
|
mov r0, #1
|
|
mov r1, #7
|
|
bl sub_037F8598
|
|
b _027F4AC8
|
|
_027F4AC0:
|
|
sub r1, r7, #0x10
|
|
bl sub_037F8908
|
|
_027F4AC8:
|
|
ldr r0, [sp, #4]
|
|
mov r1, r5
|
|
add r0, r0, #0x6c
|
|
bl sub_037F8908
|
|
ldr r0, [sp, #4]
|
|
ldrh r0, [r0, #0x74]
|
|
cmp r0, #0
|
|
beq _027F4AF4
|
|
mov r0, #2
|
|
mov r1, #9
|
|
bl sub_037F8598
|
|
_027F4AF4:
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F4B00: .word 0x0380FFF4
|
|
_027F4B04: .word 0x000005FC
|
|
_027F4B08: .word 0x00000622
|
|
_027F4B0C: .word 0x000005E4
|
|
arm_func_end sub_027F45E8
|
|
|
|
arm_func_start sub_027F4B10
|
|
sub_027F4B10: ; 0x027F4B10
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r4, _027F4B78 ; =0x0380FFF4
|
|
mov r6, #0
|
|
ldr r0, [r4]
|
|
mov r7, #0x18
|
|
add r0, r0, #0xe4
|
|
add r5, r0, #0x400
|
|
_027F4B2C:
|
|
mul r1, r6, r7
|
|
ldrh r0, [r5, r1]
|
|
add r1, r5, r1
|
|
cmp r0, #0
|
|
beq _027F4B64
|
|
sub r0, r0, #1
|
|
strh r0, [r1]
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _027F4B64
|
|
ldr r0, [r4]
|
|
ldr r1, [r1, #0x14]
|
|
add r0, r0, #0x188
|
|
bl sub_037F8908
|
|
_027F4B64:
|
|
add r6, r6, #1
|
|
cmp r6, #3
|
|
blo _027F4B2C
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F4B78: .word 0x0380FFF4
|
|
arm_func_end sub_027F4B10
|
|
|
|
arm_func_start sub_027F4B7C
|
|
sub_027F4B7C: ; 0x027F4B7C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r3, _027F4CBC ; =0x0380FFF4
|
|
mov sb, r2
|
|
ldr r2, [r3]
|
|
mov fp, r0
|
|
add r0, sb, #1
|
|
mov sl, r1
|
|
add r4, r2, #0x23c
|
|
bl sub_027EAD50
|
|
cmp r0, #0x20
|
|
bhi _027F4CB4
|
|
mov r6, #4
|
|
mov r7, r6
|
|
mov r8, #0x400
|
|
mov r5, #0
|
|
b _027F4BFC
|
|
_027F4BBC:
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _027F4BF0
|
|
add r0, r4, #6
|
|
add r1, sl, #0x24
|
|
bl sub_027EA474
|
|
cmp r0, #0
|
|
bne _027F4C1C
|
|
ldrh r0, [r4, #0x30]
|
|
cmp r0, r8
|
|
movlo r8, r0
|
|
movlo r7, r5
|
|
b _027F4BF4
|
|
_027F4BF0:
|
|
mov r6, r5
|
|
_027F4BF4:
|
|
add r5, r5, #1
|
|
add r4, r4, #0x32
|
|
_027F4BFC:
|
|
cmp r5, #4
|
|
blo _027F4BBC
|
|
cmp r6, #4
|
|
movne r5, r6
|
|
bne _027F4C1C
|
|
cmp r7, #4
|
|
movne r5, r7
|
|
beq _027F4CB4
|
|
_027F4C1C:
|
|
ldr r0, _027F4CBC ; =0x0380FFF4
|
|
mov r2, #0x32
|
|
mul r4, r5, r2
|
|
ldr r0, [r0]
|
|
add r5, r0, #0x23c
|
|
add r6, r5, r4
|
|
mov r1, r6
|
|
mov r0, #0
|
|
bl sub_037FDF74
|
|
mov r0, #0x400
|
|
strh r0, [r6, #0x30]
|
|
ldrh r1, [sl, #0x12]
|
|
add r0, r6, #6
|
|
and r1, r1, #0xff
|
|
strh r1, [r5, r4]
|
|
strh fp, [r6, #2]
|
|
add r1, sl, #0x24
|
|
bl sub_027EA0E0
|
|
add r0, sb, #1
|
|
bl sub_027EAD50
|
|
strh r0, [r6, #0xc]
|
|
mov r7, #0
|
|
add r5, sb, #2
|
|
add r4, r6, #0xe
|
|
b _027F4C98
|
|
_027F4C80:
|
|
add r0, r5, r7
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
add r0, r4, r7
|
|
bl sub_027EAD24
|
|
add r7, r7, #1
|
|
_027F4C98:
|
|
ldrh r0, [r6, #0xc]
|
|
cmp r7, r0
|
|
blo _027F4C80
|
|
ldrh r0, [sl, #0x34]
|
|
strh r0, [r6, #0x2e]
|
|
ldrh r0, [sl, #0x36]
|
|
strh r0, [r6, #4]
|
|
_027F4CB4:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F4CBC: .word 0x0380FFF4
|
|
arm_func_end sub_027F4B7C
|
|
|
|
arm_func_start sub_027F4CC0
|
|
sub_027F4CC0: ; 0x027F4CC0
|
|
ldr r1, _027F4CDC ; =0x0380FFF4
|
|
ldr ip, _027F4CE0 ; =sub_037FDF74
|
|
ldr r1, [r1]
|
|
mov r0, #0
|
|
mov r2, #0xc8
|
|
add r1, r1, #0x23c
|
|
bx ip
|
|
.align 2, 0
|
|
_027F4CDC: .word 0x0380FFF4
|
|
_027F4CE0: .word sub_037FDF74
|
|
arm_func_end sub_027F4CC0
|
|
|
|
arm_func_start sub_027F4CE4
|
|
sub_027F4CE4: ; 0x027F4CE4
|
|
ldr r0, _027F4D28 ; =0x0380FFF4
|
|
mov r3, #0
|
|
ldr r0, [r0]
|
|
add r2, r0, #0x23c
|
|
mov r0, r3
|
|
_027F4CF8:
|
|
ldrh r1, [r2, #0x30]
|
|
cmp r1, #0
|
|
beq _027F4D18
|
|
sub r1, r1, #1
|
|
strh r1, [r2, #0x30]
|
|
ldrh r1, [r2, #0x30]
|
|
cmp r1, #0
|
|
streqh r0, [r2]
|
|
_027F4D18:
|
|
add r3, r3, #1
|
|
cmp r3, #4
|
|
blo _027F4CF8
|
|
bx lr
|
|
.align 2, 0
|
|
_027F4D28: .word 0x0380FFF4
|
|
arm_func_end sub_027F4CE4
|
|
|
|
arm_func_start sub_027F4D2C
|
|
sub_027F4D2C: ; 0x027F4D2C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _027F4DC8 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
ldr r1, [r0, #0x318]
|
|
ldrh r6, [r1, #2]
|
|
cmp r6, #0xa4
|
|
blo _027F4D58
|
|
ldr r0, _027F4DCC ; =0x000001D6
|
|
cmp r6, r0
|
|
bls _027F4D60
|
|
_027F4D58:
|
|
mov r0, #2
|
|
b _027F4DC0
|
|
_027F4D60:
|
|
add r7, r1, #2
|
|
mov r5, #0
|
|
b _027F4D90
|
|
_027F4D6C:
|
|
mov r0, r7
|
|
bl sub_027EAD50
|
|
mov r1, r5, lsl #0x10
|
|
and r0, r0, #0xff
|
|
mov r1, r1, lsr #0x10
|
|
add r7, r7, #1
|
|
bl sub_027EADE8
|
|
mov r5, r0
|
|
sub r6, r6, #1
|
|
_027F4D90:
|
|
cmp r6, #0
|
|
bne _027F4D6C
|
|
ldr r0, _027F4DC8 ; =0x0380FFF4
|
|
cmp r4, #0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x318]
|
|
ldrh r1, [r0]
|
|
orrne r0, r1, r5, lsl #16
|
|
strne r0, [r4]
|
|
cmp r5, r1
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
_027F4DC0:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F4DC8: .word 0x0380FFF4
|
|
_027F4DCC: .word 0x000001D6
|
|
arm_func_end sub_027F4D2C
|
|
|
|
arm_func_start sub_027F4DD0
|
|
sub_027F4DD0: ; 0x027F4DD0
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
add r4, sp, #0
|
|
_027F4DDC:
|
|
mov r0, r4
|
|
bl sub_027F5548
|
|
ldr r0, [sp]
|
|
tst r0, #0x20
|
|
beq _027F4DF8
|
|
bl sub_027F5C84
|
|
b _027F4DDC
|
|
_027F4DF8:
|
|
ldr r0, [sp]
|
|
tst r0, #1
|
|
bne _027F4DDC
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F4DD0
|
|
|
|
arm_func_start sub_027F4E10
|
|
sub_027F4E10: ; 0x027F4E10
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r3, _027F4E6C ; =0x0380FFF4
|
|
mov r6, r1
|
|
ldr r1, [r3]
|
|
mov r5, r2
|
|
ldr r1, [r1, #0x318]
|
|
cmp r1, #0
|
|
beq _027F4E64
|
|
add r0, r1, r0
|
|
sub r4, r0, #0x2a
|
|
b _027F4E5C
|
|
_027F4E3C:
|
|
mov r0, r4
|
|
bl sub_027EAD50
|
|
mov r1, r0
|
|
mov r0, r5
|
|
add r4, r4, #1
|
|
bl sub_027EAD24
|
|
add r5, r5, #1
|
|
sub r6, r6, #1
|
|
_027F4E5C:
|
|
cmp r6, #0
|
|
bne _027F4E3C
|
|
_027F4E64:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F4E6C: .word 0x0380FFF4
|
|
arm_func_end sub_027F4E10
|
|
|
|
arm_func_start sub_027F4E70
|
|
sub_027F4E70: ; 0x027F4E70
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r3, _027F4EBC ; =0x0380FFF4
|
|
mov r6, r0
|
|
ldr r0, [r3]
|
|
mov r5, r1
|
|
ldr r0, [r0, #0x314]
|
|
mov r4, r2
|
|
bl sub_0380398C
|
|
bl sub_027F4DD0
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_027F55B8
|
|
ldr r0, _027F4EBC ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x314]
|
|
bl sub_038039E8
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F4EBC: .word 0x0380FFF4
|
|
arm_func_end sub_027F4E70
|
|
|
|
arm_func_start sub_027F4EC0
|
|
sub_027F4EC0: ; 0x027F4EC0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _027F4FA4 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x314]
|
|
bl sub_0380398C
|
|
bl sub_027F4DD0
|
|
mov r3, #0
|
|
add r2, sp, #0
|
|
mov r0, #0x2c
|
|
mov r1, #2
|
|
str r3, [sp]
|
|
bl sub_027F55B8
|
|
ldr r0, _027F4FA4 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x314]
|
|
bl sub_038039E8
|
|
ldr r1, [sp]
|
|
cmp r1, #0xa4
|
|
blo _027F4F18
|
|
ldr r0, _027F4FA8 ; =0x000001D6
|
|
cmp r1, r0
|
|
bls _027F4F20
|
|
_027F4F18:
|
|
mov r0, #0
|
|
b _027F4F9C
|
|
_027F4F20:
|
|
ldr r0, _027F4FA4 ; =0x0380FFF4
|
|
add r1, r1, #2
|
|
str r1, [sp]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_037F886C
|
|
ldr r2, _027F4FA4 ; =0x0380FFF4
|
|
ldr r1, [r2]
|
|
str r0, [r1, #0x318]
|
|
ldr r1, [r2]
|
|
ldr r0, [r1, #0x318]
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _027F4F9C
|
|
add r0, r0, #0xc
|
|
str r0, [r1, #0x318]
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, #0x314]
|
|
bl sub_0380398C
|
|
bl sub_027F4DD0
|
|
ldr r0, _027F4FA4 ; =0x0380FFF4
|
|
ldr r1, [sp]
|
|
ldr r2, [r0]
|
|
mov r0, #0x2a
|
|
ldr r2, [r2, #0x318]
|
|
bl sub_027F55B8
|
|
ldr r0, _027F4FA4 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x314]
|
|
bl sub_038039E8
|
|
mov r0, #1
|
|
_027F4F9C:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F4FA4: .word 0x0380FFF4
|
|
_027F4FA8: .word 0x000001D6
|
|
arm_func_end sub_027F4EC0
|
|
|
|
arm_func_start sub_027F4FAC
|
|
sub_027F4FAC: ; 0x027F4FAC
|
|
ldr r0, _027F4FD0 ; =0x027F8E08
|
|
mov r3, #0
|
|
mov r2, r3
|
|
_027F4FB8:
|
|
mov r1, r3, lsl #1
|
|
add r3, r3, #1
|
|
strh r2, [r0, r1]
|
|
cmp r3, #0x10
|
|
blt _027F4FB8
|
|
bx lr
|
|
.align 2, 0
|
|
_027F4FD0: .word 0x027F8E08
|
|
arm_func_end sub_027F4FAC
|
|
|
|
arm_func_start sub_027F4FD4
|
|
sub_027F4FD4: ; 0x027F4FD4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #8
|
|
tst r0, #0x2000000
|
|
beq _027F5004
|
|
ldr r2, _027F5174 ; =0x027F8E08
|
|
mov r5, #0
|
|
mov lr, r5
|
|
_027F4FF0:
|
|
mov r4, r5, lsl #1
|
|
add r5, r5, #1
|
|
strh lr, [r2, r4]
|
|
cmp r5, #0x10
|
|
blt _027F4FF0
|
|
_027F5004:
|
|
ldr r2, _027F5174 ; =0x027F8E08
|
|
and r4, r0, #0xf0000
|
|
mov r4, r4, lsr #0x10
|
|
mov r4, r4, lsl #1
|
|
strh r0, [r2, r4]
|
|
tst r0, #0x1000000
|
|
beq _027F5168
|
|
ldr lr, _027F5178 ; =0x027F8E08
|
|
ldrh r0, [lr]
|
|
and r2, r0, #0xff00
|
|
mov r2, r2, lsl #8
|
|
mov r4, r2, lsr #0x10
|
|
sub r2, r4, #0x22
|
|
cmp r2, #0xa
|
|
addls pc, pc, r2, lsl #2
|
|
b _027F513C
|
|
_027F5044: ; jump table
|
|
b _027F5070 ; case 0
|
|
b _027F50A8 ; case 1
|
|
b _027F50A8 ; case 2
|
|
b _027F50F0 ; case 3
|
|
b _027F50F0 ; case 4
|
|
b _027F5130 ; case 5
|
|
b _027F5130 ; case 6
|
|
b _027F513C ; case 7
|
|
b _027F513C ; case 8
|
|
b _027F513C ; case 9
|
|
b _027F5070 ; case 10
|
|
_027F5070:
|
|
ldrh ip, [lr, #4]
|
|
ldrh r2, [lr, #2]
|
|
mov r0, r0, lsl #0x18
|
|
and ip, ip, #0xff00
|
|
orr r0, r0, r2, lsl #8
|
|
orr ip, r0, ip, lsr #8
|
|
cmp ip, #0x2000000
|
|
blo _027F5098
|
|
cmp ip, #0x2800000
|
|
blo _027F513C
|
|
_027F5098:
|
|
mov r0, r4
|
|
mov r1, #2
|
|
bl sub_03803A48
|
|
b _027F5168
|
|
_027F50A8:
|
|
ldrh r2, [lr, #8]
|
|
ldrh r1, [lr, #0xa]
|
|
orr ip, r1, r2, lsl #16
|
|
cmp ip, #0x2000000
|
|
blo _027F50C4
|
|
cmp ip, #0x2800000
|
|
blo _027F50D4
|
|
_027F50C4:
|
|
mov r0, r4
|
|
mov r1, #2
|
|
bl sub_03803A48
|
|
b _027F5168
|
|
_027F50D4:
|
|
ldrh r2, [lr, #2]
|
|
mov r3, r0, lsl #0x18
|
|
ldrh r1, [lr, #4]
|
|
ldrh r0, [lr, #6]
|
|
orr r3, r2, r3, lsr #8
|
|
orr r1, r0, r1, lsl #16
|
|
b _027F513C
|
|
_027F50F0:
|
|
ldrh r2, [lr, #6]
|
|
ldrh r1, [lr, #8]
|
|
orr ip, r1, r2, lsl #16
|
|
cmp ip, #0x2000000
|
|
blo _027F510C
|
|
cmp ip, #0x2800000
|
|
blo _027F511C
|
|
_027F510C:
|
|
mov r0, r4
|
|
mov r1, #2
|
|
bl sub_03803A48
|
|
b _027F5168
|
|
_027F511C:
|
|
ldrh r2, [lr, #2]
|
|
mov r0, r0, lsl #0x18
|
|
ldrh r1, [lr, #4]
|
|
orr r3, r2, r0, lsr #8
|
|
b _027F513C
|
|
_027F5130:
|
|
ldrh r2, [lr, #2]
|
|
mov r0, r0, lsl #0x18
|
|
orr r3, r2, r0, lsr #8
|
|
_027F513C:
|
|
str r1, [sp]
|
|
mov r1, r4
|
|
mov r0, #1
|
|
mov r2, #3
|
|
str ip, [sp, #4]
|
|
bl sub_03803B7C
|
|
cmp r0, #0
|
|
bne _027F5168
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_03803A48
|
|
_027F5168:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F5174: .word 0x027F8E08
|
|
_027F5178: .word 0x027F8E08
|
|
arm_func_end sub_027F4FD4
|
|
|
|
arm_func_start sub_027F517C
|
|
sub_027F517C: ; 0x027F517C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
bl sub_037FDD00
|
|
mov r5, r0
|
|
mov r0, #1
|
|
bl sub_03803B0C
|
|
cmp r0, #0
|
|
bne _027F51BC
|
|
mov r0, r5
|
|
bl sub_037FDD14
|
|
ldr r0, [r4, #4]
|
|
mov r1, #4
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03803A48
|
|
b _027F5448
|
|
_027F51BC:
|
|
mov r0, #1
|
|
bl sub_03803B28
|
|
mov r0, r5
|
|
bl sub_037FDD14
|
|
ldr r0, [r4, #4]
|
|
sub r0, r0, #0x20
|
|
cmp r0, #0xd
|
|
addls pc, pc, r0, lsl #2
|
|
b _027F540C
|
|
_027F51E0: ; jump table
|
|
b _027F5218 ; case 0
|
|
b _027F5220 ; case 1
|
|
b _027F5228 ; case 2
|
|
b _027F5234 ; case 3
|
|
b _027F5274 ; case 4
|
|
b _027F52B4 ; case 5
|
|
b _027F52FC ; case 6
|
|
b _027F5344 ; case 7
|
|
b _027F537C ; case 8
|
|
b _027F53B4 ; case 9
|
|
b _027F53BC ; case 10
|
|
b _027F53C4 ; case 11
|
|
b _027F53F8 ; case 12
|
|
b _027F5404 ; case 13
|
|
_027F5218:
|
|
bl sub_027F54A4
|
|
b _027F542C
|
|
_027F5220:
|
|
bl sub_027F5508
|
|
b _027F542C
|
|
_027F5228:
|
|
ldr r0, [r4, #0x10]
|
|
bl sub_027F5548
|
|
b _027F542C
|
|
_027F5234:
|
|
bl sub_027F5450
|
|
cmp r0, #0
|
|
bne _027F5260
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03803A48
|
|
mov r0, #1
|
|
bl sub_03803B40
|
|
b _027F5448
|
|
_027F5260:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0xc]
|
|
ldr r2, [r4, #0x10]
|
|
bl sub_027F55B8
|
|
b _027F542C
|
|
_027F5274:
|
|
bl sub_027F5450
|
|
cmp r0, #0
|
|
bne _027F52A0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03803A48
|
|
mov r0, #1
|
|
bl sub_03803B40
|
|
b _027F5448
|
|
_027F52A0:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0xc]
|
|
ldr r2, [r4, #0x10]
|
|
bl sub_027F56E0
|
|
b _027F542C
|
|
_027F52B4:
|
|
bl sub_027F5474
|
|
cmp r0, #0
|
|
bne _027F52E0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03803A48
|
|
mov r0, #1
|
|
bl sub_03803B40
|
|
b _027F5448
|
|
_027F52E0:
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4, #8]
|
|
mov r1, r1, lsl #0x10
|
|
ldr r2, [r4, #0x10]
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_027F5800
|
|
b _027F542C
|
|
_027F52FC:
|
|
bl sub_027F5474
|
|
cmp r0, #0
|
|
bne _027F5328
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03803A48
|
|
mov r0, #1
|
|
bl sub_03803B40
|
|
b _027F5448
|
|
_027F5328:
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4, #8]
|
|
mov r1, r1, lsl #0x10
|
|
ldr r2, [r4, #0x10]
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_027F590C
|
|
b _027F542C
|
|
_027F5344:
|
|
bl sub_027F5474
|
|
cmp r0, #0
|
|
bne _027F5370
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03803A48
|
|
mov r0, #1
|
|
bl sub_03803B40
|
|
b _027F5448
|
|
_027F5370:
|
|
ldr r0, [r4, #8]
|
|
bl sub_027F5A18
|
|
b _027F542C
|
|
_027F537C:
|
|
bl sub_027F5474
|
|
cmp r0, #0
|
|
bne _027F53A8
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03803A48
|
|
mov r0, #1
|
|
bl sub_03803B40
|
|
b _027F5448
|
|
_027F53A8:
|
|
ldr r0, [r4, #8]
|
|
bl sub_027F5AA0
|
|
b _027F542C
|
|
_027F53B4:
|
|
bl sub_027F5B28
|
|
b _027F542C
|
|
_027F53BC:
|
|
bl sub_027F5B68
|
|
b _027F542C
|
|
_027F53C4:
|
|
bl sub_027F5474
|
|
cmp r0, #0
|
|
bne _027F53F0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03803A48
|
|
mov r0, #1
|
|
bl sub_03803B40
|
|
b _027F5448
|
|
_027F53F0:
|
|
bl sub_027F5BA8
|
|
b _027F542C
|
|
_027F53F8:
|
|
ldr r0, [r4, #0x10]
|
|
bl sub_027F5BE8
|
|
b _027F542C
|
|
_027F5404:
|
|
bl sub_027F5C84
|
|
b _027F542C
|
|
_027F540C:
|
|
mov r0, #1
|
|
bl sub_03803B40
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03803A48
|
|
b _027F5448
|
|
_027F542C:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03803A48
|
|
mov r0, #1
|
|
bl sub_03803B40
|
|
_027F5448:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_027F517C
|
|
|
|
arm_func_start sub_027F5450
|
|
sub_027F5450: ; 0x027F5450
|
|
stmdb sp!, {r3, lr}
|
|
add r0, sp, #0
|
|
bl sub_027F5548
|
|
ldrh r0, [sp]
|
|
tst r0, #1
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_027F5450
|
|
|
|
arm_func_start sub_027F5474
|
|
sub_027F5474: ; 0x027F5474
|
|
stmdb sp!, {r3, lr}
|
|
add r0, sp, #0
|
|
bl sub_027F5548
|
|
ldrh r0, [sp]
|
|
tst r0, #1
|
|
movne r0, #0
|
|
bne _027F549C
|
|
tst r0, #2
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
_027F549C:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_027F5474
|
|
|
|
arm_func_start sub_027F54A4
|
|
sub_027F54A4: ; 0x027F54A4
|
|
ldr r2, _027F54DC ; =0x040001C0
|
|
_027F54A8:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _027F54A8
|
|
ldr r0, _027F54E0 ; =0x040001C2
|
|
mov r1, #0x8100
|
|
strh r1, [r2]
|
|
mov r1, #6
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_027F54CC:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _027F54CC
|
|
bx lr
|
|
.align 2, 0
|
|
_027F54DC: .word 0x040001C0
|
|
_027F54E0: .word 0x040001C2
|
|
arm_func_end sub_027F54A4
|
|
|
|
arm_func_start sub_027F54E4
|
|
sub_027F54E4: ; 0x027F54E4
|
|
ldr r1, _027F5504 ; =0x040001C2
|
|
and r0, r0, #0xff
|
|
strh r0, [r1]
|
|
sub r1, r1, #2
|
|
_027F54F4:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _027F54F4
|
|
bx lr
|
|
.align 2, 0
|
|
_027F5504: .word 0x040001C2
|
|
arm_func_end sub_027F54E4
|
|
|
|
arm_func_start sub_027F5508
|
|
sub_027F5508: ; 0x027F5508
|
|
ldr r2, _027F5540 ; =0x040001C0
|
|
_027F550C:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _027F550C
|
|
ldr r0, _027F5544 ; =0x040001C2
|
|
mov r1, #0x8100
|
|
strh r1, [r2]
|
|
mov r1, #4
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_027F5530:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _027F5530
|
|
bx lr
|
|
.align 2, 0
|
|
_027F5540: .word 0x040001C0
|
|
_027F5544: .word 0x040001C2
|
|
arm_func_end sub_027F5508
|
|
|
|
arm_func_start sub_027F5548
|
|
sub_027F5548: ; 0x027F5548
|
|
ldr r3, _027F55B0 ; =0x040001C0
|
|
_027F554C:
|
|
ldrh r1, [r3]
|
|
tst r1, #0x80
|
|
bne _027F554C
|
|
ldr r1, _027F55B4 ; =0x040001C2
|
|
mov r2, #0x8900
|
|
strh r2, [r3]
|
|
mov r2, #5
|
|
strh r2, [r1]
|
|
sub r3, r1, #2
|
|
_027F5570:
|
|
ldrh r1, [r3]
|
|
tst r1, #0x80
|
|
bne _027F5570
|
|
ldr r1, _027F55B4 ; =0x040001C2
|
|
mov r2, #0x8100
|
|
strh r2, [r3]
|
|
mov r2, #0
|
|
strh r2, [r1]
|
|
sub r2, r1, #2
|
|
_027F5594:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _027F5594
|
|
ldr r1, _027F55B4 ; =0x040001C2
|
|
ldrh r1, [r1]
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_027F55B0: .word 0x040001C0
|
|
_027F55B4: .word 0x040001C2
|
|
arm_func_end sub_027F5548
|
|
|
|
arm_func_start sub_027F55B8
|
|
sub_027F55B8: ; 0x027F55B8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #8
|
|
mov r5, r2
|
|
cmp r1, #1
|
|
blo _027F56A8
|
|
and r2, r0, #0xff00
|
|
mov r2, r2, lsr #8
|
|
and r3, r0, #0xff0000
|
|
strh r2, [sp, #2]
|
|
mov r3, r3, lsr #0x10
|
|
and r0, r0, #0xff
|
|
ldr r2, _027F56B4 ; =0x040001C0
|
|
strh r3, [sp]
|
|
strh r0, [sp, #4]
|
|
_027F55F0:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _027F55F0
|
|
ldr r4, _027F56B8 ; =0x040001C2
|
|
mov r0, #0x8900
|
|
strh r0, [r2]
|
|
mov r0, #3
|
|
strh r0, [r4]
|
|
mov ip, #0
|
|
add r2, sp, #0
|
|
sub r3, r4, #2
|
|
_027F561C:
|
|
ldrh r0, [r3]
|
|
tst r0, #0x80
|
|
bne _027F561C
|
|
mov r0, ip, lsl #1
|
|
ldrh r0, [r2, r0]
|
|
add ip, ip, #1
|
|
and r0, r0, #0xff
|
|
strh r0, [r4]
|
|
cmp ip, #3
|
|
blt _027F561C
|
|
ldr r2, _027F56B4 ; =0x040001C0
|
|
_027F5648:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _027F5648
|
|
mov r4, #0
|
|
ldr r2, _027F56B4 ; =0x040001C0
|
|
sub r0, r1, #1
|
|
mov r3, r4
|
|
b _027F5684
|
|
_027F5668:
|
|
strh r3, [r2, #2]
|
|
_027F566C:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _027F566C
|
|
ldrh r1, [r2, #2]
|
|
strb r1, [r5, r4]
|
|
add r4, r4, #1
|
|
_027F5684:
|
|
cmp r4, r0
|
|
blo _027F5668
|
|
ldr r0, _027F56B4 ; =0x040001C0
|
|
mov r1, #0x8100
|
|
strh r1, [r0]
|
|
bl sub_027F56BC
|
|
ldr r0, _027F56B8 ; =0x040001C2
|
|
ldrh r0, [r0]
|
|
strb r0, [r5, r4]
|
|
_027F56A8:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F56B4: .word 0x040001C0
|
|
_027F56B8: .word 0x040001C2
|
|
arm_func_end sub_027F55B8
|
|
|
|
arm_func_start sub_027F56BC
|
|
sub_027F56BC: ; 0x027F56BC
|
|
ldr r0, _027F56DC ; =0x040001C2
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_027F56CC:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _027F56CC
|
|
bx lr
|
|
.align 2, 0
|
|
_027F56DC: .word 0x040001C2
|
|
arm_func_end sub_027F56BC
|
|
|
|
arm_func_start sub_027F56E0
|
|
sub_027F56E0: ; 0x027F56E0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #8
|
|
mov r5, r2
|
|
cmp r1, #1
|
|
blo _027F57EC
|
|
and r2, r0, #0xff00
|
|
mov r2, r2, lsr #8
|
|
and r3, r0, #0xff0000
|
|
strh r2, [sp, #2]
|
|
mov r3, r3, lsr #0x10
|
|
and r0, r0, #0xff
|
|
ldr r2, _027F57F8 ; =0x040001C0
|
|
strh r3, [sp]
|
|
strh r0, [sp, #4]
|
|
_027F5718:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _027F5718
|
|
ldr r4, _027F57FC ; =0x040001C2
|
|
mov r0, #0x8900
|
|
strh r0, [r2]
|
|
mov r0, #0xb
|
|
strh r0, [r4]
|
|
mov ip, #0
|
|
add r2, sp, #0
|
|
sub r3, r4, #2
|
|
_027F5744:
|
|
ldrh r0, [r3]
|
|
tst r0, #0x80
|
|
bne _027F5744
|
|
mov r0, ip, lsl #1
|
|
ldrh r0, [r2, r0]
|
|
add ip, ip, #1
|
|
and r0, r0, #0xff
|
|
strh r0, [r4]
|
|
cmp ip, #3
|
|
blt _027F5744
|
|
ldr r2, _027F57F8 ; =0x040001C0
|
|
_027F5770:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _027F5770
|
|
ldr r0, _027F57FC ; =0x040001C2
|
|
mov r2, #0
|
|
strh r2, [r0]
|
|
sub r2, r0, #2
|
|
_027F578C:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _027F578C
|
|
mov r4, #0
|
|
ldr r2, _027F57F8 ; =0x040001C0
|
|
sub r0, r1, #1
|
|
mov r3, r4
|
|
b _027F57C8
|
|
_027F57AC:
|
|
strh r3, [r2, #2]
|
|
_027F57B0:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _027F57B0
|
|
ldrh r1, [r2, #2]
|
|
strb r1, [r5, r4]
|
|
add r4, r4, #1
|
|
_027F57C8:
|
|
cmp r4, r0
|
|
blo _027F57AC
|
|
ldr r0, _027F57F8 ; =0x040001C0
|
|
mov r1, #0x8100
|
|
strh r1, [r0]
|
|
bl sub_027F56BC
|
|
ldr r0, _027F57FC ; =0x040001C2
|
|
ldrh r0, [r0]
|
|
strb r0, [r5, r4]
|
|
_027F57EC:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F57F8: .word 0x040001C0
|
|
_027F57FC: .word 0x040001C2
|
|
arm_func_end sub_027F56E0
|
|
|
|
arm_func_start sub_027F5800
|
|
sub_027F5800: ; 0x027F5800
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
cmp r1, #1
|
|
blo _027F58F8
|
|
add r3, r0, r1
|
|
sub r3, r3, #1
|
|
mov r3, r3, lsr #8
|
|
cmp r3, r0, lsr #8
|
|
and r3, r0, #0xff00
|
|
mov r3, r3, lsr #8
|
|
andhi r1, r0, #0xff
|
|
and ip, r0, #0xff0000
|
|
strh r3, [sp, #2]
|
|
rsbhi r1, r1, #0x100
|
|
mov ip, ip, lsr #0x10
|
|
and r0, r0, #0xff
|
|
movhi r1, r1, lsl #0x10
|
|
ldr r3, _027F5904 ; =0x040001C0
|
|
strh ip, [sp]
|
|
strh r0, [sp, #4]
|
|
movhi r1, r1, lsr #0x10
|
|
_027F5854:
|
|
ldrh r0, [r3]
|
|
tst r0, #0x80
|
|
bne _027F5854
|
|
ldr lr, _027F5908 ; =0x040001C2
|
|
mov r0, #0x8900
|
|
strh r0, [r3]
|
|
mov r0, #0xa
|
|
strh r0, [lr]
|
|
mov r4, #0
|
|
add r3, sp, #0
|
|
sub ip, lr, #2
|
|
_027F5880:
|
|
ldrh r0, [ip]
|
|
tst r0, #0x80
|
|
bne _027F5880
|
|
mov r0, r4, lsl #1
|
|
ldrh r0, [r3, r0]
|
|
add r4, r4, #1
|
|
and r0, r0, #0xff
|
|
strh r0, [lr]
|
|
cmp r4, #3
|
|
blt _027F5880
|
|
sub r3, r1, #1
|
|
ldr r1, _027F5904 ; =0x040001C0
|
|
mov r4, #0
|
|
b _027F58D0
|
|
_027F58B8:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _027F58B8
|
|
ldrb r0, [r2, r4]
|
|
add r4, r4, #1
|
|
strh r0, [r1, #2]
|
|
_027F58D0:
|
|
cmp r4, r3
|
|
blt _027F58B8
|
|
ldr r1, _027F5904 ; =0x040001C0
|
|
_027F58DC:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _027F58DC
|
|
mov r0, #0x8100
|
|
strh r0, [r1]
|
|
ldrb r0, [r2, r4]
|
|
bl sub_027F54E4
|
|
_027F58F8:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F5904: .word 0x040001C0
|
|
_027F5908: .word 0x040001C2
|
|
arm_func_end sub_027F5800
|
|
|
|
arm_func_start sub_027F590C
|
|
sub_027F590C: ; 0x027F590C
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
cmp r1, #1
|
|
blo _027F5A04
|
|
add r3, r0, r1
|
|
sub r3, r3, #1
|
|
mov r3, r3, lsr #8
|
|
cmp r3, r0, lsr #8
|
|
and r3, r0, #0xff00
|
|
mov r3, r3, lsr #8
|
|
andhi r1, r0, #0xff
|
|
and ip, r0, #0xff0000
|
|
strh r3, [sp, #2]
|
|
rsbhi r1, r1, #0x100
|
|
mov ip, ip, lsr #0x10
|
|
and r0, r0, #0xff
|
|
movhi r1, r1, lsl #0x10
|
|
ldr r3, _027F5A10 ; =0x040001C0
|
|
strh ip, [sp]
|
|
strh r0, [sp, #4]
|
|
movhi r1, r1, lsr #0x10
|
|
_027F5960:
|
|
ldrh r0, [r3]
|
|
tst r0, #0x80
|
|
bne _027F5960
|
|
ldr lr, _027F5A14 ; =0x040001C2
|
|
mov r0, #0x8900
|
|
strh r0, [r3]
|
|
mov r0, #2
|
|
strh r0, [lr]
|
|
mov r4, #0
|
|
add r3, sp, #0
|
|
sub ip, lr, #2
|
|
_027F598C:
|
|
ldrh r0, [ip]
|
|
tst r0, #0x80
|
|
bne _027F598C
|
|
mov r0, r4, lsl #1
|
|
ldrh r0, [r3, r0]
|
|
add r4, r4, #1
|
|
and r0, r0, #0xff
|
|
strh r0, [lr]
|
|
cmp r4, #3
|
|
blt _027F598C
|
|
sub r3, r1, #1
|
|
ldr r1, _027F5A10 ; =0x040001C0
|
|
mov r4, #0
|
|
b _027F59DC
|
|
_027F59C4:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _027F59C4
|
|
ldrb r0, [r2, r4]
|
|
add r4, r4, #1
|
|
strh r0, [r1, #2]
|
|
_027F59DC:
|
|
cmp r4, r3
|
|
blt _027F59C4
|
|
ldr r1, _027F5A10 ; =0x040001C0
|
|
_027F59E8:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _027F59E8
|
|
mov r0, #0x8100
|
|
strh r0, [r1]
|
|
ldrb r0, [r2, r4]
|
|
bl sub_027F54E4
|
|
_027F5A04:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F5A10: .word 0x040001C0
|
|
_027F5A14: .word 0x040001C2
|
|
arm_func_end sub_027F590C
|
|
|
|
arm_func_start sub_027F5A18
|
|
sub_027F5A18: ; 0x027F5A18
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
and r1, r0, #0xff0000
|
|
mov r1, r1, lsr #0x10
|
|
and r2, r0, #0xff00
|
|
mov r2, r2, lsl #8
|
|
ldr r3, _027F5A98 ; =0x040001C0
|
|
mov r1, r1, lsl #0x10
|
|
and r5, r0, #0xff
|
|
mov r0, r1, lsr #0x10
|
|
mov r4, r2, lsr #0x10
|
|
_027F5A40:
|
|
ldrh r1, [r3]
|
|
tst r1, #0x80
|
|
bne _027F5A40
|
|
ldr r1, _027F5A9C ; =0x040001C2
|
|
mov r2, #0x8900
|
|
strh r2, [r3]
|
|
mov r2, #0xdb
|
|
strh r2, [r1]
|
|
sub r2, r1, #2
|
|
_027F5A64:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _027F5A64
|
|
bl sub_027F54E4
|
|
mov r0, r4
|
|
bl sub_027F54E4
|
|
ldr r1, _027F5A98 ; =0x040001C0
|
|
mov r2, #0x8100
|
|
mov r0, r5
|
|
strh r2, [r1]
|
|
bl sub_027F54E4
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F5A98: .word 0x040001C0
|
|
_027F5A9C: .word 0x040001C2
|
|
arm_func_end sub_027F5A18
|
|
|
|
arm_func_start sub_027F5AA0
|
|
sub_027F5AA0: ; 0x027F5AA0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
and r1, r0, #0xff0000
|
|
mov r1, r1, lsr #0x10
|
|
and r2, r0, #0xff00
|
|
mov r2, r2, lsl #8
|
|
ldr r3, _027F5B20 ; =0x040001C0
|
|
mov r1, r1, lsl #0x10
|
|
and r5, r0, #0xff
|
|
mov r0, r1, lsr #0x10
|
|
mov r4, r2, lsr #0x10
|
|
_027F5AC8:
|
|
ldrh r1, [r3]
|
|
tst r1, #0x80
|
|
bne _027F5AC8
|
|
ldr r1, _027F5B24 ; =0x040001C2
|
|
mov r2, #0x8900
|
|
strh r2, [r3]
|
|
mov r2, #0xd8
|
|
strh r2, [r1]
|
|
sub r2, r1, #2
|
|
_027F5AEC:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _027F5AEC
|
|
bl sub_027F54E4
|
|
mov r0, r4
|
|
bl sub_027F54E4
|
|
ldr r1, _027F5B20 ; =0x040001C0
|
|
mov r2, #0x8100
|
|
mov r0, r5
|
|
strh r2, [r1]
|
|
bl sub_027F54E4
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F5B20: .word 0x040001C0
|
|
_027F5B24: .word 0x040001C2
|
|
arm_func_end sub_027F5AA0
|
|
|
|
arm_func_start sub_027F5B28
|
|
sub_027F5B28: ; 0x027F5B28
|
|
ldr r2, _027F5B60 ; =0x040001C0
|
|
_027F5B2C:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _027F5B2C
|
|
ldr r0, _027F5B64 ; =0x040001C2
|
|
mov r1, #0x8100
|
|
strh r1, [r2]
|
|
mov r1, #0xb9
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_027F5B50:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _027F5B50
|
|
bx lr
|
|
.align 2, 0
|
|
_027F5B60: .word 0x040001C0
|
|
_027F5B64: .word 0x040001C2
|
|
arm_func_end sub_027F5B28
|
|
|
|
arm_func_start sub_027F5B68
|
|
sub_027F5B68: ; 0x027F5B68
|
|
ldr r2, _027F5BA0 ; =0x040001C0
|
|
_027F5B6C:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _027F5B6C
|
|
ldr r0, _027F5BA4 ; =0x040001C2
|
|
mov r1, #0x8100
|
|
strh r1, [r2]
|
|
mov r1, #0xab
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_027F5B90:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _027F5B90
|
|
bx lr
|
|
.align 2, 0
|
|
_027F5BA0: .word 0x040001C0
|
|
_027F5BA4: .word 0x040001C2
|
|
arm_func_end sub_027F5B68
|
|
|
|
arm_func_start sub_027F5BA8
|
|
sub_027F5BA8: ; 0x027F5BA8
|
|
ldr r2, _027F5BE0 ; =0x040001C0
|
|
_027F5BAC:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _027F5BAC
|
|
ldr r0, _027F5BE4 ; =0x040001C2
|
|
mov r1, #0x8100
|
|
strh r1, [r2]
|
|
mov r1, #0xc7
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_027F5BD0:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _027F5BD0
|
|
bx lr
|
|
.align 2, 0
|
|
_027F5BE0: .word 0x040001C0
|
|
_027F5BE4: .word 0x040001C2
|
|
arm_func_end sub_027F5BA8
|
|
|
|
arm_func_start sub_027F5BE8
|
|
sub_027F5BE8: ; 0x027F5BE8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, _027F5C7C ; =0x040001C0
|
|
_027F5BF0:
|
|
ldrh r1, [r3]
|
|
tst r1, #0x80
|
|
bne _027F5BF0
|
|
ldr r1, _027F5C80 ; =0x040001C2
|
|
mov r2, #0x8900
|
|
strh r2, [r3]
|
|
mov r2, #0x9f
|
|
strh r2, [r1]
|
|
sub r2, r1, #2
|
|
_027F5C14:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _027F5C14
|
|
ldr r1, _027F5C80 ; =0x040001C2
|
|
mov r2, #0
|
|
strh r2, [r1]
|
|
sub lr, r1, #2
|
|
_027F5C30:
|
|
ldrh r1, [lr]
|
|
tst r1, #0x80
|
|
bne _027F5C30
|
|
ldr ip, _027F5C80 ; =0x040001C2
|
|
mov r2, #0x8100
|
|
ldrh r3, [ip]
|
|
mov r1, #0
|
|
strb r3, [r0]
|
|
strh r2, [lr]
|
|
strh r1, [ip]
|
|
sub r2, ip, #2
|
|
_027F5C5C:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _027F5C5C
|
|
ldr r1, _027F5C80 ; =0x040001C2
|
|
ldrh r1, [r1]
|
|
strb r1, [r0, #1]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F5C7C: .word 0x040001C0
|
|
_027F5C80: .word 0x040001C2
|
|
arm_func_end sub_027F5BE8
|
|
|
|
arm_func_start sub_027F5C84
|
|
sub_027F5C84: ; 0x027F5C84
|
|
ldr r2, _027F5CBC ; =0x040001C0
|
|
_027F5C88:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _027F5C88
|
|
ldr r0, _027F5CC0 ; =0x040001C2
|
|
mov r1, #0x8100
|
|
strh r1, [r2]
|
|
mov r1, #0xff
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_027F5CAC:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _027F5CAC
|
|
bx lr
|
|
.align 2, 0
|
|
_027F5CBC: .word 0x040001C0
|
|
_027F5CC0: .word 0x040001C2
|
|
arm_func_end sub_027F5C84
|
|
|
|
arm_func_start sub_027F5CC4
|
|
sub_027F5CC4: ; 0x027F5CC4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0xc
|
|
ldr r1, _027F5F00 ; =0x027F8E28
|
|
mov r8, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _027F5EF4
|
|
mov r2, #1
|
|
strh r2, [r1]
|
|
add r0, sp, #8
|
|
str r2, [r1, #0x1d8]
|
|
bl sub_027F6B04
|
|
add r0, sp, #0xa
|
|
bl sub_027F6B68
|
|
ldrh r0, [sp, #8]
|
|
mov r1, r0, lsl #0x18
|
|
movs r1, r1, lsr #0x1f
|
|
bne _027F5D28
|
|
mov r0, r0, lsl #0x19
|
|
movs r0, r0, lsr #0x1f
|
|
bne _027F5D28
|
|
ldrh r0, [sp, #0xa]
|
|
mov r0, r0, lsl #0x18
|
|
movs r0, r0, lsr #0x1f
|
|
beq _027F5D40
|
|
_027F5D28:
|
|
ldrh r1, [sp, #8]
|
|
add r0, sp, #8
|
|
bic r1, r1, #1
|
|
orr r1, r1, #1
|
|
strh r1, [sp, #8]
|
|
bl sub_027F6B30
|
|
_027F5D40:
|
|
ldrh r0, [sp, #8]
|
|
mov r1, r0, lsl #0x1b
|
|
movs r1, r1, lsr #0x1f
|
|
bne _027F5D5C
|
|
mov r0, r0, lsl #0x1a
|
|
movs r0, r0, lsr #0x1f
|
|
beq _027F5D7C
|
|
_027F5D5C:
|
|
ldrh r1, [sp, #0xa]
|
|
add r0, sp, #0xa
|
|
bic r1, r1, #0xf
|
|
strh r1, [sp, #0xa]
|
|
ldrh r1, [sp, #0xa]
|
|
bic r1, r1, #0x40
|
|
strh r1, [sp, #0xa]
|
|
bl sub_027F6B94
|
|
_027F5D7C:
|
|
ldr r0, _027F5F04 ; =0x027FFDE8
|
|
bl sub_027F6794
|
|
ldr r0, _027F5F04 ; =0x027FFDE8
|
|
ldr r0, [r0]
|
|
mov r0, r0, lsl #0xa
|
|
mov r0, r0, lsr #0x1a
|
|
bl sub_027F65BC
|
|
ldr r1, _027F5F04 ; =0x027FFDE8
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
mov r0, r0, lsl #0x13
|
|
mov r0, r0, lsr #0x1b
|
|
bl sub_027F65BC
|
|
ldr r1, _027F5F04 ; =0x027FFDE8
|
|
mov r6, r0
|
|
ldr r0, [r1]
|
|
mov r0, r0, lsl #0x18
|
|
mov r0, r0, lsr #0x18
|
|
bl sub_027F65BC
|
|
sub r1, r6, #1
|
|
cmp r1, #1
|
|
add r7, r0, #0x7d0
|
|
subls r7, r7, #1
|
|
mov r0, r7
|
|
mov r1, #0x190
|
|
addls r6, r6, #0xc
|
|
bl sub_03806DD4
|
|
mov r4, r0
|
|
mov r0, r7
|
|
mov r1, #0x64
|
|
bl sub_03806DD4
|
|
mov r1, #0xd
|
|
mul r1, r6, r1
|
|
mov r6, r0
|
|
add r0, r1, #8
|
|
mov r1, #5
|
|
bl sub_03806DD4
|
|
add r1, r7, r7, lsr #2
|
|
sub r1, r1, r6
|
|
add r1, r4, r1
|
|
add r0, r1, r0
|
|
add r0, r5, r0
|
|
mov r1, #7
|
|
bl sub_03806DD4
|
|
ldr r0, _027F5F04 ; =0x027FFDE8
|
|
ldr r2, [r0]
|
|
mov r3, r2, lsl #5
|
|
mov r3, r3, lsr #0x1d
|
|
cmp r3, r1
|
|
beq _027F5E58
|
|
bic r2, r2, #0x7000000
|
|
mov r1, r1, lsl #0x1d
|
|
orr r1, r2, r1, lsr #5
|
|
str r1, [r0]
|
|
bl sub_027F67C0
|
|
_027F5E58:
|
|
mov r0, #1
|
|
bl sub_027F6670
|
|
ldr r0, _027F5F00 ; =0x027F8E28
|
|
mov r1, #0
|
|
str r1, [r0, #0x1d8]
|
|
bl sub_037FE2B4
|
|
ldr r1, _027F5F08 ; =0x027F5F24
|
|
mov r0, #5
|
|
bl sub_037FE39C
|
|
ldr r0, _027F5F0C ; =0x027F8E2C
|
|
ldr r1, _027F5F10 ; =0x027F8E4C
|
|
mov r2, #4
|
|
bl sub_037FC6AC
|
|
mov r0, #0x100
|
|
stmia sp, {r0, r8}
|
|
ldr r0, _027F5F14 ; =0x027F8E5C
|
|
ldr r1, _027F5F18 ; =0x027F60A8
|
|
ldr r3, _027F5F1C ; =0x027F9000
|
|
mov r2, #0
|
|
bl sub_037FC054
|
|
ldr r0, _027F5F14 ; =0x027F8E5C
|
|
bl sub_037FC36C
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
mov r0, #0x40
|
|
mov r1, #0
|
|
bl sub_037FE588
|
|
mov r0, #0x100
|
|
mov r1, r0
|
|
bl sub_037FE588
|
|
bl sub_037FDD00
|
|
mov r4, r0
|
|
ldr r1, _027F5F20 ; =0x027F652C
|
|
mov r0, #0x80
|
|
bl sub_037FB7BC
|
|
mov r0, #0x80
|
|
bl sub_037FB8F0
|
|
mov r0, r4
|
|
bl sub_037FDD14
|
|
_027F5EF4:
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F5F00: .word 0x027F8E28
|
|
_027F5F04: .word 0x027FFDE8
|
|
_027F5F08: .word 0x027F5F24
|
|
_027F5F0C: .word 0x027F8E2C
|
|
_027F5F10: .word 0x027F8E4C
|
|
_027F5F14: .word 0x027F8E5C
|
|
_027F5F18: .word 0x027F60A8
|
|
_027F5F1C: .word 0x027F9000
|
|
_027F5F20: .word 0x027F652C
|
|
arm_func_end sub_027F5CC4
|
|
|
|
arm_func_start sub_027F5F24
|
|
sub_027F5F24: ; 0x027F5F24
|
|
stmdb sp!, {r4, lr}
|
|
cmp r2, #0
|
|
bne _027F6054
|
|
and r0, r1, #0x7f00
|
|
mov r0, r0, lsl #8
|
|
mov r4, r0, lsr #0x10
|
|
cmp r4, #0x29
|
|
addls pc, pc, r4, lsl #2
|
|
b _027F6048
|
|
_027F5F48: ; jump table
|
|
b _027F5FF0 ; case 0
|
|
b _027F5FF0 ; case 1
|
|
b _027F6048 ; case 2
|
|
b _027F6048 ; case 3
|
|
b _027F6048 ; case 4
|
|
b _027F6048 ; case 5
|
|
b _027F6048 ; case 6
|
|
b _027F6048 ; case 7
|
|
b _027F6048 ; case 8
|
|
b _027F6048 ; case 9
|
|
b _027F6048 ; case 10
|
|
b _027F6048 ; case 11
|
|
b _027F6048 ; case 12
|
|
b _027F6048 ; case 13
|
|
b _027F6048 ; case 14
|
|
b _027F6048 ; case 15
|
|
b _027F5FF0 ; case 16
|
|
b _027F5FF0 ; case 17
|
|
b _027F5FF0 ; case 18
|
|
b _027F5FF0 ; case 19
|
|
b _027F5FF0 ; case 20
|
|
b _027F5FF0 ; case 21
|
|
b _027F5FF0 ; case 22
|
|
b _027F5FF0 ; case 23
|
|
b _027F5FF0 ; case 24
|
|
b _027F5FF0 ; case 25
|
|
b _027F6048 ; case 26
|
|
b _027F6048 ; case 27
|
|
b _027F6048 ; case 28
|
|
b _027F6048 ; case 29
|
|
b _027F6048 ; case 30
|
|
b _027F6048 ; case 31
|
|
b _027F6048 ; case 32
|
|
b _027F6048 ; case 33
|
|
b _027F6048 ; case 34
|
|
b _027F5FF0 ; case 35
|
|
b _027F5FF0 ; case 36
|
|
b _027F5FF0 ; case 37
|
|
b _027F5FF0 ; case 38
|
|
b _027F5FF0 ; case 39
|
|
b _027F5FF0 ; case 40
|
|
b _027F5FF0 ; case 41
|
|
_027F5FF0:
|
|
ldr r0, _027F605C ; =0x027F8E28
|
|
ldr r1, [r0, #0x1d8]
|
|
cmp r1, #0
|
|
beq _027F6010
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_027F6068
|
|
b _027F6054
|
|
_027F6010:
|
|
ldr r3, _027F6060 ; =0x027F8F28
|
|
mov r1, #1
|
|
str r1, [r0, #0x1d8]
|
|
mov r1, #0
|
|
ldr r0, _027F6064 ; =0x027F8E2C
|
|
mov r2, r1
|
|
strh r4, [r3, #0xdc]
|
|
bl sub_037FC6D4
|
|
cmp r0, #0
|
|
bne _027F6054
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_027F6068
|
|
b _027F6054
|
|
_027F6048:
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_027F6068
|
|
_027F6054:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_027F605C: .word 0x027F8E28
|
|
_027F6060: .word 0x027F8F28
|
|
_027F6064: .word 0x027F8E2C
|
|
arm_func_end sub_027F5F24
|
|
|
|
arm_func_start sub_027F6068
|
|
sub_027F6068: ; 0x027F6068
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r0, r0, lsl #8
|
|
and r0, r0, #0x7f00
|
|
orr r2, r0, #0x8000
|
|
and r0, r1, #0xff
|
|
orr r6, r2, r0
|
|
mov r5, #5
|
|
mov r4, #0
|
|
_027F6088:
|
|
mov r0, r5
|
|
mov r1, r6
|
|
mov r2, r4
|
|
bl sub_037FE410
|
|
cmp r0, #0
|
|
blt _027F6088
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6068
|
|
|
|
arm_func_start sub_027F60A8
|
|
sub_027F60A8: ; 0x027F60A8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr sb, _027F651C ; =0x027FFDE8
|
|
mov r8, #0
|
|
ldr r4, _027F6520 ; =0x027F8E28
|
|
mov r7, r8
|
|
mov r6, r8
|
|
mov r5, r8
|
|
mov sl, r8
|
|
mov fp, r8
|
|
_027F60CC:
|
|
ldr r0, _027F6524 ; =0x027F8E2C
|
|
add r1, sp, #0
|
|
mov r2, #1
|
|
bl sub_037FC760
|
|
ldr r0, _027F6528 ; =0x027F8F28
|
|
ldrh r0, [r0, #0xdc]
|
|
cmp r0, #0x29
|
|
addls pc, pc, r0, lsl #2
|
|
b _027F6508
|
|
_027F60F0: ; jump table
|
|
b _027F6198 ; case 0
|
|
b _027F61B0 ; case 1
|
|
b _027F6508 ; case 2
|
|
b _027F6508 ; case 3
|
|
b _027F6508 ; case 4
|
|
b _027F6508 ; case 5
|
|
b _027F6508 ; case 6
|
|
b _027F6508 ; case 7
|
|
b _027F6508 ; case 8
|
|
b _027F6508 ; case 9
|
|
b _027F6508 ; case 10
|
|
b _027F6508 ; case 11
|
|
b _027F6508 ; case 12
|
|
b _027F6508 ; case 13
|
|
b _027F6508 ; case 14
|
|
b _027F6508 ; case 15
|
|
b _027F61D8 ; case 16
|
|
b _027F61F8 ; case 17
|
|
b _027F6218 ; case 18
|
|
b _027F6238 ; case 19
|
|
b _027F6274 ; case 20
|
|
b _027F62B0 ; case 21
|
|
b _027F62EC ; case 22
|
|
b _027F630C ; case 23
|
|
b _027F632C ; case 24
|
|
b _027F634C ; case 25
|
|
b _027F6508 ; case 26
|
|
b _027F6508 ; case 27
|
|
b _027F6508 ; case 28
|
|
b _027F6508 ; case 29
|
|
b _027F6508 ; case 30
|
|
b _027F6508 ; case 31
|
|
b _027F636C ; case 32
|
|
b _027F638C ; case 33
|
|
b _027F63B4 ; case 34
|
|
b _027F63D4 ; case 35
|
|
b _027F6410 ; case 36
|
|
b _027F644C ; case 37
|
|
b _027F6488 ; case 38
|
|
b _027F64A8 ; case 39
|
|
b _027F64C8 ; case 40
|
|
b _027F64E8 ; case 41
|
|
_027F6198:
|
|
bl sub_027F662C
|
|
mov r0, #0
|
|
mov r1, r0
|
|
str r0, [r4, #0x1d8]
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F61B0:
|
|
ldrh r0, [sb]
|
|
mov r0, r0, lsl #0x1e
|
|
mov r0, r0, lsr #0x1f
|
|
bl sub_027F6670
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F61D8:
|
|
mov r0, sb
|
|
bl sub_027F6794
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x10
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F61F8:
|
|
mov r0, sb
|
|
bl sub_027F67F8
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x11
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F6218:
|
|
add r0, sb, #4
|
|
bl sub_027F6824
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x12
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F6238:
|
|
add r0, sb, #4
|
|
bl sub_027F6888
|
|
cmp r0, #0
|
|
bne _027F625C
|
|
mov r0, #0x13
|
|
mov r1, #2
|
|
str r8, [r4, #0x1d8]
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F625C:
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x13
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F6274:
|
|
add r0, sb, #4
|
|
bl sub_027F6964
|
|
cmp r0, #0
|
|
bne _027F6298
|
|
mov r0, #0x14
|
|
mov r1, #2
|
|
str r7, [r4, #0x1d8]
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F6298:
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x14
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F62B0:
|
|
add r0, sb, #4
|
|
bl sub_027F6A38
|
|
cmp r0, #0
|
|
bne _027F62D4
|
|
mov r0, #0x15
|
|
mov r1, #2
|
|
str r6, [r4, #0x1d8]
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F62D4:
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x15
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F62EC:
|
|
mov r0, sb
|
|
bl sub_027F6B04
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x16
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F630C:
|
|
add r0, sb, #2
|
|
bl sub_027F6B68
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x17
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F632C:
|
|
add r0, sb, #4
|
|
bl sub_027F6BCC
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x18
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F634C:
|
|
add r0, sb, #4
|
|
bl sub_027F6C30
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x19
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F636C:
|
|
mov r0, sb
|
|
bl sub_027F67C0
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x20
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F638C:
|
|
add r0, sb, #4
|
|
bl sub_027F6824
|
|
mov r0, sb
|
|
bl sub_027F67C0
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x21
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F63B4:
|
|
add r0, sb, #4
|
|
bl sub_027F6850
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x22
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F63D4:
|
|
add r0, sb, #4
|
|
bl sub_027F68F0
|
|
cmp r0, #0
|
|
bne _027F63F8
|
|
mov r0, #0x23
|
|
mov r1, #2
|
|
str r5, [r4, #0x1d8]
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F63F8:
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x23
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F6410:
|
|
add r0, sb, #4
|
|
bl sub_027F69C8
|
|
cmp r0, #0
|
|
bne _027F6434
|
|
mov r0, #0x24
|
|
mov r1, #2
|
|
str sl, [r4, #0x1d8]
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F6434:
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x24
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F644C:
|
|
add r0, sb, #4
|
|
bl sub_027F6A98
|
|
cmp r0, #0
|
|
bne _027F6470
|
|
mov r0, #0x25
|
|
mov r1, #2
|
|
str fp, [r4, #0x1d8]
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F6470:
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x25
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F6488:
|
|
mov r0, sb
|
|
bl sub_027F6B30
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x26
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F64A8:
|
|
add r0, sb, #2
|
|
bl sub_027F6B94
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x27
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F64C8:
|
|
add r0, sb, #4
|
|
bl sub_027F6BF8
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x28
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F64E8:
|
|
add r0, sb, #4
|
|
bl sub_027F6C5C
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x29
|
|
mov r1, #0
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
_027F6508:
|
|
mov r1, #0
|
|
str r1, [r4, #0x1d8]
|
|
mov r1, #1
|
|
bl sub_027F6068
|
|
b _027F60CC
|
|
.align 2, 0
|
|
_027F651C: .word 0x027FFDE8
|
|
_027F6520: .word 0x027F8E28
|
|
_027F6524: .word 0x027F8E2C
|
|
_027F6528: .word 0x027F8F28
|
|
arm_func_end sub_027F60A8
|
|
|
|
arm_func_start sub_027F652C
|
|
sub_027F652C: ; 0x027F652C
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
add r0, sp, #2
|
|
bl sub_027F6B04
|
|
ldrh r0, [sp, #2]
|
|
mov r1, r0, lsl #0x1b
|
|
movs r1, r1, lsr #0x1f
|
|
bne _027F6558
|
|
mov r0, r0, lsl #0x1a
|
|
movs r0, r0, lsr #0x1f
|
|
beq _027F65B0
|
|
_027F6558:
|
|
add r0, sp, #0
|
|
bl sub_027F6B68
|
|
ldrh r0, [sp, #2]
|
|
mov r4, #0
|
|
mov r0, r0, lsl #0x1b
|
|
movs r0, r0, lsr #0x1f
|
|
ldrneh r0, [sp]
|
|
orrne r4, r4, #1
|
|
bicne r0, r0, #0xf
|
|
strneh r0, [sp]
|
|
ldrh r0, [sp, #2]
|
|
mov r0, r0, lsl #0x1a
|
|
movs r0, r0, lsr #0x1f
|
|
ldrneh r0, [sp]
|
|
orrne r4, r4, #2
|
|
bicne r0, r0, #0x40
|
|
strneh r0, [sp]
|
|
add r0, sp, #0
|
|
bl sub_027F6B94
|
|
mov r1, r4
|
|
mov r0, #0x30
|
|
bl sub_027F6068
|
|
_027F65B0:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F652C
|
|
|
|
arm_func_start sub_027F65BC
|
|
sub_027F65BC: ; 0x027F65BC
|
|
stmdb sp!, {r4, lr}
|
|
mov ip, #0
|
|
mov r2, ip
|
|
b _027F65E8
|
|
_027F65CC:
|
|
mov r1, r2, lsl #2
|
|
mov r1, r0, lsr r1
|
|
and r1, r1, #0xf
|
|
cmp r1, #0xa
|
|
movhs r0, #0
|
|
bhs _027F6624
|
|
add r2, r2, #1
|
|
_027F65E8:
|
|
cmp r2, #8
|
|
blt _027F65CC
|
|
mov r4, #0
|
|
mov lr, #1
|
|
mov r2, #0xa
|
|
_027F65FC:
|
|
mov r1, r4, lsl #2
|
|
mov r1, r0, lsr r1
|
|
and r3, r1, #0xf
|
|
mul r1, lr, r2
|
|
mla ip, lr, r3, ip
|
|
add r4, r4, #1
|
|
mov lr, r1
|
|
cmp r4, #8
|
|
blt _027F65FC
|
|
mov r0, ip
|
|
_027F6624:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F65BC
|
|
|
|
arm_func_start sub_027F662C
|
|
sub_027F662C: ; 0x027F662C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
ldrh r0, [sp]
|
|
bic r0, r0, #1
|
|
orr r0, r0, #1
|
|
strh r0, [sp]
|
|
bl sub_027F6F10
|
|
mov r0, #6
|
|
mov r1, #0
|
|
bl sub_027F6F84
|
|
add r0, sp, #0
|
|
mov r1, #1
|
|
bl sub_027F7004
|
|
bl sub_027F6F50
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_027F662C
|
|
|
|
arm_func_start sub_027F6670
|
|
sub_027F6670: ; 0x027F6670
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
mov r4, r0
|
|
and r4, r4, #1
|
|
cmp r4, #1
|
|
bne _027F6788
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0
|
|
mov r3, #1
|
|
bl sub_027F6EB4
|
|
ldrh r0, [sp]
|
|
mov r1, r0, lsl #0x1e
|
|
mov r1, r1, lsr #0x1f
|
|
cmp r1, r4
|
|
beq _027F6788
|
|
bic r1, r0, #2
|
|
mov r0, r4, lsl #0x1f
|
|
orr r1, r1, r0, lsr #30
|
|
mov r0, #0x8000
|
|
strh r1, [sp]
|
|
bl sub_037FE5A8
|
|
bl sub_027F6F10
|
|
mov r0, #6
|
|
mov r1, #0
|
|
bl sub_027F6F84
|
|
add r0, sp, #0
|
|
mov r1, #1
|
|
bl sub_027F7004
|
|
bl sub_027F6F50
|
|
mov r0, #0x86
|
|
mov r1, #0x10
|
|
add r2, sp, #4
|
|
mov r3, #3
|
|
bl sub_027F6EB4
|
|
cmp r4, #0
|
|
add r0, sp, #4
|
|
bne _027F6718
|
|
bl sub_027F6C94
|
|
b _027F671C
|
|
_027F6718:
|
|
bl sub_027F6DA4
|
|
_027F671C:
|
|
bl sub_027F6F10
|
|
mov r0, #6
|
|
mov r1, #0x10
|
|
bl sub_027F6F84
|
|
add r0, sp, #4
|
|
mov r1, #3
|
|
bl sub_027F7004
|
|
bl sub_027F6F50
|
|
mov r0, #0x86
|
|
mov r1, #0x50
|
|
add r2, sp, #4
|
|
mov r3, #3
|
|
bl sub_027F6EB4
|
|
cmp r4, #0
|
|
add r0, sp, #4
|
|
bne _027F6764
|
|
bl sub_027F6C94
|
|
b _027F6768
|
|
_027F6764:
|
|
bl sub_027F6DA4
|
|
_027F6768:
|
|
bl sub_027F6F10
|
|
mov r0, #6
|
|
mov r1, #0x50
|
|
bl sub_027F6F84
|
|
add r0, sp, #4
|
|
mov r1, #3
|
|
bl sub_027F7004
|
|
bl sub_027F6F50
|
|
_027F6788:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6670
|
|
|
|
arm_func_start sub_027F6794
|
|
sub_027F6794: ; 0x027F6794
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x20
|
|
mov r3, #7
|
|
bl sub_027F6EB4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6794
|
|
|
|
arm_func_start sub_027F67C0
|
|
sub_027F67C0: ; 0x027F67C0
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
bl sub_027F6F10
|
|
mov r0, #6
|
|
mov r1, #0x20
|
|
bl sub_027F6F84
|
|
mov r0, r4
|
|
mov r1, #7
|
|
bl sub_027F7004
|
|
bl sub_027F6F50
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F67C0
|
|
|
|
arm_func_start sub_027F67F8
|
|
sub_027F67F8: ; 0x027F67F8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x20
|
|
mov r3, #4
|
|
bl sub_027F6EB4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F67F8
|
|
|
|
arm_func_start sub_027F6824
|
|
sub_027F6824: ; 0x027F6824
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x60
|
|
mov r3, #3
|
|
bl sub_027F6EB4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6824
|
|
|
|
arm_func_start sub_027F6850
|
|
sub_027F6850: ; 0x027F6850
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
bl sub_027F6F10
|
|
mov r0, #6
|
|
mov r1, #0x60
|
|
bl sub_027F6F84
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_027F7004
|
|
bl sub_027F6F50
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6850
|
|
|
|
arm_func_start sub_027F6888
|
|
sub_027F6888: ; 0x027F6888
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_027F6EB4
|
|
ldrh r0, [sp]
|
|
mov r0, r0, lsl #0x1c
|
|
mov r0, r0, lsr #0x1c
|
|
and r0, r0, #0xb
|
|
cmp r0, #1
|
|
movne r0, #0
|
|
bne _027F68E4
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x10
|
|
mov r3, #1
|
|
bl sub_027F6EB4
|
|
mov r0, #1
|
|
_027F68E4:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6888
|
|
|
|
arm_func_start sub_027F68F0
|
|
sub_027F68F0: ; 0x027F68F0
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_027F6EB4
|
|
ldrh r0, [sp]
|
|
mov r0, r0, lsl #0x1c
|
|
mov r0, r0, lsr #0x1c
|
|
and r0, r0, #0xb
|
|
cmp r0, #1
|
|
movne r0, #0
|
|
bne _027F6958
|
|
bl sub_027F6F10
|
|
mov r0, #6
|
|
mov r1, #0x10
|
|
bl sub_027F6F84
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_027F7004
|
|
bl sub_027F6F50
|
|
mov r0, #1
|
|
_027F6958:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F68F0
|
|
|
|
arm_func_start sub_027F6964
|
|
sub_027F6964: ; 0x027F6964
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_027F6EB4
|
|
ldrh r0, [sp]
|
|
mov r0, r0, lsl #0x1c
|
|
mov r0, r0, lsr #0x1c
|
|
cmp r0, #4
|
|
movne r0, #0
|
|
bne _027F69BC
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x10
|
|
mov r3, #3
|
|
bl sub_027F6EB4
|
|
mov r0, #1
|
|
_027F69BC:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6964
|
|
|
|
arm_func_start sub_027F69C8
|
|
sub_027F69C8: ; 0x027F69C8
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_027F6EB4
|
|
ldrh r0, [sp]
|
|
mov r0, r0, lsl #0x1c
|
|
mov r0, r0, lsr #0x1c
|
|
cmp r0, #4
|
|
movne r0, #0
|
|
bne _027F6A2C
|
|
bl sub_027F6F10
|
|
mov r0, #6
|
|
mov r1, #0x10
|
|
bl sub_027F6F84
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_027F7004
|
|
bl sub_027F6F50
|
|
mov r0, #1
|
|
_027F6A2C:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F69C8
|
|
|
|
arm_func_start sub_027F6A38
|
|
sub_027F6A38: ; 0x027F6A38
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_027F6EB4
|
|
ldrh r0, [sp]
|
|
mov r0, r0, lsl #0x19
|
|
movs r0, r0, lsr #0x1f
|
|
moveq r0, #0
|
|
beq _027F6A8C
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x50
|
|
mov r3, #3
|
|
bl sub_027F6EB4
|
|
mov r0, #1
|
|
_027F6A8C:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6A38
|
|
|
|
arm_func_start sub_027F6A98
|
|
sub_027F6A98: ; 0x027F6A98
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_027F6EB4
|
|
ldrh r0, [sp]
|
|
mov r0, r0, lsl #0x19
|
|
movs r0, r0, lsr #0x1f
|
|
moveq r0, #0
|
|
beq _027F6AF8
|
|
bl sub_027F6F10
|
|
mov r0, #6
|
|
mov r1, #0x50
|
|
bl sub_027F6F84
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_027F7004
|
|
bl sub_027F6F50
|
|
mov r0, #1
|
|
_027F6AF8:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6A98
|
|
|
|
arm_func_start sub_027F6B04
|
|
sub_027F6B04: ; 0x027F6B04
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0
|
|
mov r3, #1
|
|
bl sub_027F6EB4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6B04
|
|
|
|
arm_func_start sub_027F6B30
|
|
sub_027F6B30: ; 0x027F6B30
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
bl sub_027F6F10
|
|
mov r0, #6
|
|
mov r1, #0
|
|
bl sub_027F6F84
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_027F7004
|
|
bl sub_027F6F50
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6B30
|
|
|
|
arm_func_start sub_027F6B68
|
|
sub_027F6B68: ; 0x027F6B68
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_027F6EB4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6B68
|
|
|
|
arm_func_start sub_027F6B94
|
|
sub_027F6B94: ; 0x027F6B94
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
bl sub_027F6F10
|
|
mov r0, #6
|
|
mov r1, #0x40
|
|
bl sub_027F6F84
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_027F7004
|
|
bl sub_027F6F50
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6B94
|
|
|
|
arm_func_start sub_027F6BCC
|
|
sub_027F6BCC: ; 0x027F6BCC
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x30
|
|
mov r3, #1
|
|
bl sub_027F6EB4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6BCC
|
|
|
|
arm_func_start sub_027F6BF8
|
|
sub_027F6BF8: ; 0x027F6BF8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
bl sub_027F6F10
|
|
mov r0, #6
|
|
mov r1, #0x30
|
|
bl sub_027F6F84
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_027F7004
|
|
bl sub_027F6F50
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6BF8
|
|
|
|
arm_func_start sub_027F6C30
|
|
sub_027F6C30: ; 0x027F6C30
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x70
|
|
mov r3, #1
|
|
bl sub_027F6EB4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6C30
|
|
|
|
arm_func_start sub_027F6C5C
|
|
sub_027F6C5C: ; 0x027F6C5C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_037FE5A8
|
|
bl sub_027F6F10
|
|
mov r0, #6
|
|
mov r1, #0x70
|
|
bl sub_027F6F84
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_027F7004
|
|
bl sub_027F6F50
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6C5C
|
|
|
|
arm_func_start sub_027F6C94
|
|
sub_027F6C94: ; 0x027F6C94
|
|
ldr r1, [r0]
|
|
mov r2, r1, lsl #0x12
|
|
mov r2, r2, lsr #0x1a
|
|
cmp r2, #0x23
|
|
addls pc, pc, r2, lsl #2
|
|
b _027F6D90
|
|
_027F6CAC: ; jump table
|
|
b _027F6D3C ; case 0
|
|
b _027F6D3C ; case 1
|
|
b _027F6D3C ; case 2
|
|
b _027F6D3C ; case 3
|
|
b _027F6D3C ; case 4
|
|
b _027F6D3C ; case 5
|
|
b _027F6D3C ; case 6
|
|
b _027F6D3C ; case 7
|
|
b _027F6D3C ; case 8
|
|
b _027F6D3C ; case 9
|
|
b _027F6D90 ; case 10
|
|
b _027F6D90 ; case 11
|
|
b _027F6D90 ; case 12
|
|
b _027F6D90 ; case 13
|
|
b _027F6D90 ; case 14
|
|
b _027F6D90 ; case 15
|
|
b _027F6D3C ; case 16
|
|
b _027F6D3C ; case 17
|
|
b _027F6D48 ; case 18
|
|
b _027F6D48 ; case 19
|
|
b _027F6D48 ; case 20
|
|
b _027F6D48 ; case 21
|
|
b _027F6D48 ; case 22
|
|
b _027F6D48 ; case 23
|
|
b _027F6D48 ; case 24
|
|
b _027F6D48 ; case 25
|
|
b _027F6D90 ; case 26
|
|
b _027F6D90 ; case 27
|
|
b _027F6D90 ; case 28
|
|
b _027F6D90 ; case 29
|
|
b _027F6D90 ; case 30
|
|
b _027F6D90 ; case 31
|
|
b _027F6D6C ; case 32
|
|
b _027F6D6C ; case 33
|
|
b _027F6D48 ; case 34
|
|
b _027F6D48 ; case 35
|
|
_027F6D3C:
|
|
bic r1, r1, #0x4000
|
|
str r1, [r0]
|
|
bx lr
|
|
_027F6D48:
|
|
orr r2, r1, #0x4000
|
|
mov r1, r2, lsl #0x12
|
|
mov r1, r1, lsr #0x1a
|
|
sub r1, r1, #0x12
|
|
bic r2, r2, #0x3f00
|
|
mov r1, r1, lsl #0x1a
|
|
orr r1, r2, r1, lsr #18
|
|
str r1, [r0]
|
|
bx lr
|
|
_027F6D6C:
|
|
orr r2, r1, #0x4000
|
|
mov r1, r2, lsl #0x12
|
|
mov r1, r1, lsr #0x1a
|
|
sub r1, r1, #0x18
|
|
bic r2, r2, #0x3f00
|
|
mov r1, r1, lsl #0x1a
|
|
orr r1, r2, r1, lsr #18
|
|
str r1, [r0]
|
|
bx lr
|
|
_027F6D90:
|
|
ldr r1, [r0]
|
|
bic r1, r1, #0x4000
|
|
bic r1, r1, #0x3f00
|
|
str r1, [r0]
|
|
bx lr
|
|
arm_func_end sub_027F6C94
|
|
|
|
arm_func_start sub_027F6DA4
|
|
sub_027F6DA4: ; 0x027F6DA4
|
|
ldr r2, [r0]
|
|
mov r1, r2, lsl #0x12
|
|
mov r3, r1, lsr #0x1a
|
|
cmp r3, #0x23
|
|
addls pc, pc, r3, lsl #2
|
|
b _027F6EA0
|
|
_027F6DBC: ; jump table
|
|
b _027F6E4C ; case 0
|
|
b _027F6E4C ; case 1
|
|
b _027F6E4C ; case 2
|
|
b _027F6E4C ; case 3
|
|
b _027F6E4C ; case 4
|
|
b _027F6E4C ; case 5
|
|
b _027F6E4C ; case 6
|
|
b _027F6E4C ; case 7
|
|
b _027F6E70 ; case 8
|
|
b _027F6E70 ; case 9
|
|
b _027F6EA0 ; case 10
|
|
b _027F6EA0 ; case 11
|
|
b _027F6EA0 ; case 12
|
|
b _027F6EA0 ; case 13
|
|
b _027F6EA0 ; case 14
|
|
b _027F6EA0 ; case 15
|
|
b _027F6E4C ; case 16
|
|
b _027F6E4C ; case 17
|
|
b _027F6E94 ; case 18
|
|
b _027F6E94 ; case 19
|
|
b _027F6E94 ; case 20
|
|
b _027F6E94 ; case 21
|
|
b _027F6E94 ; case 22
|
|
b _027F6E94 ; case 23
|
|
b _027F6E94 ; case 24
|
|
b _027F6E94 ; case 25
|
|
b _027F6EA0 ; case 26
|
|
b _027F6EA0 ; case 27
|
|
b _027F6EA0 ; case 28
|
|
b _027F6EA0 ; case 29
|
|
b _027F6EA0 ; case 30
|
|
b _027F6EA0 ; case 31
|
|
b _027F6E94 ; case 32
|
|
b _027F6E94 ; case 33
|
|
b _027F6E94 ; case 34
|
|
b _027F6E94 ; case 35
|
|
_027F6E4C:
|
|
mov r1, r2, lsl #0x11
|
|
movs r1, r1, lsr #0x1f
|
|
bxeq lr
|
|
add r1, r3, #0x12
|
|
bic r2, r2, #0x3f00
|
|
mov r1, r1, lsl #0x1a
|
|
orr r1, r2, r1, lsr #18
|
|
str r1, [r0]
|
|
bx lr
|
|
_027F6E70:
|
|
mov r1, r2, lsl #0x11
|
|
movs r1, r1, lsr #0x1f
|
|
bxeq lr
|
|
add r1, r3, #0x18
|
|
bic r2, r2, #0x3f00
|
|
mov r1, r1, lsl #0x1a
|
|
orr r1, r2, r1, lsr #18
|
|
str r1, [r0]
|
|
bx lr
|
|
_027F6E94:
|
|
orr r1, r2, #0x4000
|
|
str r1, [r0]
|
|
bx lr
|
|
_027F6EA0:
|
|
ldr r1, [r0]
|
|
bic r1, r1, #0x4000
|
|
bic r1, r1, #0x3f00
|
|
str r1, [r0]
|
|
bx lr
|
|
arm_func_end sub_027F6DA4
|
|
|
|
arm_func_start sub_027F6EB4
|
|
sub_027F6EB4: ; 0x027F6EB4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl sub_027F6F10
|
|
mov r0, r7
|
|
mov r1, r6
|
|
bl sub_027F6F84
|
|
cmp r7, #6
|
|
beq _027F6EF8
|
|
cmp r7, #0x86
|
|
bne _027F6F04
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_027F70BC
|
|
b _027F6F04
|
|
_027F6EF8:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_027F7004
|
|
_027F6F04:
|
|
bl sub_027F6F50
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_027F6EB4
|
|
|
|
arm_func_start sub_027F6F10
|
|
sub_027F6F10: ; 0x027F6F10
|
|
mov ip, #0x4000000
|
|
add ip, ip, #0x138
|
|
ldrh r0, [ip]
|
|
bic r0, r0, #0x77
|
|
orr r0, r0, #0x72
|
|
strh r0, [ip]
|
|
mov r3, #2
|
|
_027F6F2C:
|
|
subs r3, r3, #1
|
|
bne _027F6F2C
|
|
bic r0, r0, #4
|
|
orr r0, r0, #4
|
|
strh r0, [ip]
|
|
mov r3, #2
|
|
_027F6F44:
|
|
subs r3, r3, #1
|
|
bne _027F6F44
|
|
bx lr
|
|
arm_func_end sub_027F6F10
|
|
|
|
arm_func_start sub_027F6F50
|
|
sub_027F6F50: ; 0x027F6F50
|
|
mov ip, #0x4000000
|
|
add ip, ip, #0x138
|
|
mov r3, #2
|
|
_027F6F5C:
|
|
subs r3, r3, #1
|
|
bne _027F6F5C
|
|
ldrh r0, [ip]
|
|
bic r0, r0, #4
|
|
orr r0, r0, #0
|
|
strh r0, [ip]
|
|
mov r3, #2
|
|
_027F6F78:
|
|
subs r3, r3, #1
|
|
bne _027F6F78
|
|
bx lr
|
|
arm_func_end sub_027F6F50
|
|
|
|
arm_func_start sub_027F6F84
|
|
sub_027F6F84: ; 0x027F6F84
|
|
mov ip, #0x4000000
|
|
add ip, ip, #0x138
|
|
orr r1, r0, r1
|
|
ldrh r0, [ip]
|
|
bic r0, r0, #0x77
|
|
orr r0, r0, #0x74
|
|
mov r2, #0
|
|
_027F6FA0:
|
|
bic r0, r0, #3
|
|
orr r0, r0, #0
|
|
mov r3, #1
|
|
tst r3, r1, lsr r2
|
|
bne _027F6FB8
|
|
b _027F6FBC
|
|
_027F6FB8:
|
|
mov r3, #1
|
|
_027F6FBC:
|
|
beq _027F6FC4
|
|
b _027F6FC8
|
|
_027F6FC4:
|
|
mov r3, #0
|
|
_027F6FC8:
|
|
orr r0, r0, r3
|
|
strh r0, [ip]
|
|
mov r3, #9
|
|
_027F6FD4:
|
|
subs r3, r3, #1
|
|
bne _027F6FD4
|
|
bic r0, r0, #2
|
|
orr r0, r0, #2
|
|
strh r0, [ip]
|
|
mov r3, #9
|
|
_027F6FEC:
|
|
subs r3, r3, #1
|
|
bne _027F6FEC
|
|
add r2, r2, #1
|
|
cmp r2, #8
|
|
bne _027F6FA0
|
|
bx lr
|
|
arm_func_end sub_027F6F84
|
|
|
|
arm_func_start sub_027F7004
|
|
sub_027F7004: ; 0x027F7004
|
|
mov ip, #0x4000000
|
|
add ip, ip, #0x138
|
|
_027F700C:
|
|
stmdb sp!, {r0, r1}
|
|
tst r0, #1
|
|
beq _027F701C
|
|
b _027F7020
|
|
_027F701C:
|
|
ldrh r1, [r0]
|
|
_027F7020:
|
|
bne _027F7028
|
|
b _027F702C
|
|
_027F7028:
|
|
ldrh r1, [r0, #-1]
|
|
_027F702C:
|
|
bne _027F7034
|
|
b _027F7038
|
|
_027F7034:
|
|
mov r1, r1, lsr #8
|
|
_027F7038:
|
|
ldrh r0, [ip]
|
|
bic r0, r0, #0x77
|
|
orr r0, r0, #0x74
|
|
mov r2, #0
|
|
_027F7048:
|
|
bic r0, r0, #3
|
|
orr r0, r0, #0
|
|
mov r3, #1
|
|
tst r3, r1, lsr r2
|
|
bne _027F7060
|
|
b _027F7064
|
|
_027F7060:
|
|
mov r3, #1
|
|
_027F7064:
|
|
beq _027F706C
|
|
b _027F7070
|
|
_027F706C:
|
|
mov r3, #0
|
|
_027F7070:
|
|
orr r0, r0, r3
|
|
strh r0, [ip]
|
|
mov r3, #9
|
|
_027F707C:
|
|
subs r3, r3, #1
|
|
bne _027F707C
|
|
bic r0, r0, #2
|
|
orr r0, r0, #2
|
|
strh r0, [ip]
|
|
mov r3, #9
|
|
_027F7094:
|
|
subs r3, r3, #1
|
|
bne _027F7094
|
|
add r2, r2, #1
|
|
cmp r2, #8
|
|
bne _027F7048
|
|
ldmia sp!, {r0, r1}
|
|
add r0, r0, #1
|
|
subs r1, r1, #1
|
|
bne _027F700C
|
|
bx lr
|
|
arm_func_end sub_027F7004
|
|
|
|
arm_func_start sub_027F70BC
|
|
sub_027F70BC: ; 0x027F70BC
|
|
mov ip, #0x4000000
|
|
add ip, ip, #0x138
|
|
_027F70C4:
|
|
stmdb sp!, {r0, r1}
|
|
ldrh r0, [ip]
|
|
bic r0, r0, #0x77
|
|
orr r0, r0, #0x64
|
|
mov r2, #0
|
|
mov r1, #0
|
|
_027F70DC:
|
|
bic r0, r0, #3
|
|
orr r0, r0, #0
|
|
strh r0, [ip]
|
|
mov r3, #9
|
|
_027F70EC:
|
|
subs r3, r3, #1
|
|
bne _027F70EC
|
|
ldrh r0, [ip]
|
|
and r3, r0, #1
|
|
cmp r3, #1
|
|
beq _027F7108
|
|
b _027F710C
|
|
_027F7108:
|
|
mov r3, #0x80
|
|
_027F710C:
|
|
bne _027F7114
|
|
b _027F7118
|
|
_027F7114:
|
|
mov r3, #0
|
|
_027F7118:
|
|
orr r2, r3, r2, lsr #1
|
|
bic r0, r0, #2
|
|
orr r0, r0, #2
|
|
strh r0, [ip]
|
|
mov r3, #9
|
|
_027F712C:
|
|
subs r3, r3, #1
|
|
bne _027F712C
|
|
add r1, r1, #1
|
|
cmp r1, #8
|
|
bne _027F70DC
|
|
ldmia sp!, {r0, r1}
|
|
tst r0, #1
|
|
beq _027F7164
|
|
ldrh r3, [r0, #-1]
|
|
bic r3, r3, #0xff00
|
|
mov r2, r2, lsl #8
|
|
orr r3, r2, r3
|
|
strh r3, [r0, #-1]
|
|
b _027F7174
|
|
_027F7164:
|
|
ldrh r3, [r0]
|
|
bic r3, r3, #0xff
|
|
orr r3, r3, r2
|
|
strh r3, [r0]
|
|
_027F7174:
|
|
add r0, r0, #1
|
|
subs r1, r1, #1
|
|
bne _027F70C4
|
|
bx lr
|
|
arm_func_end sub_027F70BC
|
|
; 0x02026974
|
|
|
|
.byte 0xF0, 0x29, 0x7E, 0x02, 0x90, 0x2A, 0x7E, 0x02, 0xA0, 0x2E, 0x7E, 0x02, 0xF8, 0x7D, 0x7E, 0x02
|
|
.byte 0xF4, 0x7F, 0x7E, 0x02, 0x5C, 0x80, 0x7E, 0x02, 0x14, 0x83, 0x7E, 0x02, 0x50, 0x2F, 0x7E, 0x02
|
|
.byte 0x10, 0x30, 0x7E, 0x02, 0xD8, 0x32, 0x7E, 0x02, 0xD0, 0x34, 0x7E, 0x02, 0xBC, 0x3D, 0x7E, 0x02
|
|
.byte 0xC4, 0x3E, 0x7E, 0x02, 0xA4, 0x44, 0x7E, 0x02, 0xD4, 0x4B, 0x7E, 0x02, 0x68, 0x4F, 0x7E, 0x02
|
|
.byte 0xA4, 0x50, 0x7E, 0x02, 0xF4, 0x51, 0x7E, 0x02, 0x80, 0x52, 0x7E, 0x02, 0x78, 0x53, 0x7E, 0x02
|
|
.byte 0x34, 0x54, 0x7E, 0x02, 0x64, 0x1D, 0x7E, 0x02, 0x64, 0x1D, 0x7E, 0x02, 0x64, 0x1D, 0x7E, 0x02
|
|
.byte 0xD4, 0x55, 0x7E, 0x02, 0xC8, 0x56, 0x7E, 0x02, 0x3C, 0x57, 0x7E, 0x02, 0x60, 0x57, 0x7E, 0x02
|
|
.byte 0x40, 0x61, 0x7E, 0x02, 0x84, 0x57, 0x7E, 0x02, 0xB0, 0x58, 0x7E, 0x02, 0x8C, 0x5A, 0x7E, 0x02
|
|
.byte 0xF4, 0x5A, 0x7E, 0x02, 0xBC, 0x7C, 0x7E, 0x02, 0x4C, 0x7D, 0x7E, 0x02, 0xC0, 0x83, 0x7E, 0x02
|
|
.byte 0x40, 0x87, 0x7E, 0x02, 0xB8, 0x87, 0x7E, 0x02, 0x60, 0x38, 0x7E, 0x02, 0xDC, 0x54, 0x7E, 0x02
|
|
.byte 0xCC, 0x87, 0x7E, 0x02, 0x4C, 0x89, 0x7E, 0x02, 0x70, 0x89, 0x7E, 0x02, 0xE0, 0x62, 0x7E, 0x02
|
|
.byte 0x14, 0x63, 0x7E, 0x02, 0x3C, 0x63, 0x7E, 0x02, 0x14, 0xD2, 0x7E, 0x02, 0x68, 0xD4, 0x7E, 0x02
|
|
.byte 0x44, 0xD5, 0x7E, 0x02, 0x68, 0xD6, 0x7E, 0x02, 0x64, 0xD7, 0x7E, 0x02, 0x58, 0xD8, 0x7E, 0x02
|
|
.byte 0x74, 0x21, 0x7F, 0x02, 0x34, 0x3F, 0x7F, 0x02, 0x28, 0xA7, 0x7F, 0x03, 0xE8, 0x45, 0x7F, 0x02
|
|
.byte 0x74, 0xC2, 0x7E, 0x02, 0x88, 0x8A, 0x7F, 0x03, 0xC8, 0x86, 0x7F, 0x03, 0xF4, 0xDA, 0x7E, 0x02
|
|
.byte 0x74, 0xA7, 0x7F, 0x03, 0x48, 0xA9, 0x7F, 0x03, 0xB4, 0xAC, 0x7F, 0x03, 0x10, 0x4B, 0x7F, 0x02
|
|
.byte 0xE4, 0x4C, 0x7F, 0x02, 0x84, 0xC6, 0x7E, 0x02, 0x90, 0xAD, 0x7F, 0x03, 0xB0, 0xB0, 0x7E, 0x02
|
|
.byte 0x30, 0xB1, 0x7E, 0x02, 0xD0, 0xB1, 0x7E, 0x02, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xCC
|
|
.byte 0x01, 0xD8, 0x00, 0x14, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0x28, 0x01, 0xE4, 0x01, 0xA0, 0x00, 0x6C
|
|
.byte 0x00, 0x78, 0x01, 0xB4, 0x00, 0x50, 0x01, 0x9C, 0x01, 0x88, 0x00, 0x44, 0x46, 0x01, 0x48, 0x01
|
|
.byte 0x4A, 0x01, 0x4C, 0x01, 0x20, 0x01, 0x22, 0x01, 0x54, 0x01, 0x44, 0x01, 0x32, 0x01, 0x32, 0x01
|
|
.byte 0x40, 0x01, 0x42, 0x01, 0x38, 0x00, 0x24, 0x01, 0x28, 0x01, 0x50, 0x01, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
|
.byte 0x08, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x10, 0x00, 0xFF, 0xFF
|
|
.byte 0x54, 0x02, 0x00, 0x00, 0xB4, 0x00, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x01, 0x00
|
|
.byte 0x88, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00
|
|
.byte 0xEA, 0x00, 0x00, 0x00, 0xEE, 0x00, 0x01, 0x00, 0xEC, 0x00, 0x03, 0x3F, 0xA2, 0x01, 0x01, 0x00
|
|
.byte 0xA0, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x08, 0xBC, 0x00, 0x01, 0x00, 0xD4, 0x00, 0x03, 0x00
|
|
.byte 0xD8, 0x00, 0x04, 0x00, 0xDA, 0x00, 0x02, 0x06, 0x76, 0x00, 0x00, 0x00, 0x30, 0x01, 0x46, 0x01
|
|
.byte 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x01, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0x02, 0x00, 0x03, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
|
|
.byte 0xFF, 0x00, 0x04, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x05, 0x00, 0xFF, 0x00, 0x06, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x07, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x08, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x09, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x0A, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x0B, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
|
|
.byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
|
|
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x03, 0x09, 0xBF, 0x00, 0x00, 0x10, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x09, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x16, 0x00, 0x18, 0x00, 0x24, 0x00
|
|
.byte 0x30, 0x00, 0x48, 0x00, 0x60, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xFF, 0xFF, 0x5A, 0x5A, 0xA5, 0xA5, 0x02, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00
|
|
.byte 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x21, 0x00, 0x26, 0x00, 0x29, 0x00
|
|
.byte 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00
|
|
.byte 0x36, 0x00, 0x37, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0B, 0x00
|
|
.byte 0x0C, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x10, 0x00, 0x11, 0x00, 0x12, 0x00, 0x14, 0x00
|
|
.byte 0x15, 0x00, 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x27, 0x00, 0x4D, 0x00
|
|
.byte 0x5D, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x60, 0x00, 0x61, 0x00, 0x64, 0x00, 0x66, 0x00, 0x00, 0x00
|
|
.byte 0x06, 0x00, 0x3F, 0x00, 0x18, 0x00, 0xFF, 0xFF, 0x1A, 0x00, 0xFF, 0xFF, 0x1C, 0x00, 0xFF, 0xFF
|
|
.byte 0x20, 0x00, 0xFF, 0xFF, 0x22, 0x00, 0xFF, 0xFF, 0x24, 0x00, 0xFF, 0xFF, 0x2A, 0x00, 0xFF, 0x07
|
|
.byte 0x50, 0x00, 0xFF, 0xFF, 0x52, 0x00, 0xFF, 0xFF, 0x56, 0x00, 0xFE, 0x0F, 0x58, 0x00, 0xFE, 0x1F
|
|
.byte 0x5A, 0x00, 0xFE, 0x0F, 0x5C, 0x00, 0xFF, 0x0F, 0x62, 0x00, 0xFE, 0x1F, 0x64, 0x00, 0xFF, 0x0F
|
|
.byte 0x68, 0x00, 0xFE, 0x1F, 0x6C, 0x00, 0xFF, 0x0F, 0x74, 0x00, 0xFE, 0x1F, 0x22, 0x01, 0xFF, 0xFF
|
|
.byte 0x24, 0x01, 0xFF, 0xFF, 0x28, 0x01, 0xFF, 0xFF, 0x30, 0x01, 0xFF, 0x0F, 0x32, 0x01, 0xFF, 0x8F
|
|
.byte 0x34, 0x01, 0xFF, 0xFF, 0x40, 0x01, 0xFF, 0xFF, 0x42, 0x01, 0xFF, 0xFF, 0x18, 0x00, 0x02, 0x00
|
|
.byte 0xEC, 0xF5, 0x7E, 0x02, 0x04, 0x00, 0x01, 0x00, 0xB8, 0xF7, 0x7E, 0x02, 0x0A, 0x00, 0x01, 0x00
|
|
.byte 0x5C, 0xF9, 0x7E, 0x02, 0x0C, 0x00, 0x01, 0x00, 0x10, 0xFE, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00
|
|
.byte 0x70, 0xFE, 0x7E, 0x02, 0x00, 0x00, 0x04, 0x00, 0x0C, 0xED, 0x7E, 0x02, 0x00, 0x00, 0x12, 0x00
|
|
.byte 0x3C, 0xED, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00, 0x88, 0xED, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00
|
|
.byte 0xB0, 0xED, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00, 0xD8, 0xED, 0x7E, 0x02, 0x00, 0x00, 0x01, 0x00
|
|
.byte 0x00, 0xEE, 0x7E, 0x02, 0x03, 0x00, 0x01, 0x00, 0x8C, 0xE6, 0x7E, 0x02, 0x11, 0x00, 0x01, 0x00
|
|
.byte 0xA4, 0xE6, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00, 0xC4, 0xE6, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00
|
|
.byte 0x00, 0xE7, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00, 0x3C, 0xE7, 0x7E, 0x02, 0x00, 0x00, 0x01, 0x00
|
|
.byte 0x7C, 0xE7, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC7, 0x7E, 0x02, 0x03, 0x00, 0x01, 0x00
|
|
.byte 0x40, 0xC7, 0x7E, 0x02, 0x1F, 0x00, 0x23, 0x00, 0xEC, 0xC7, 0x7E, 0x02, 0x22, 0x00, 0x05, 0x00
|
|
.byte 0x2C, 0xC9, 0x7E, 0x02, 0x05, 0x00, 0x06, 0x00, 0xE4, 0xCA, 0x7E, 0x02, 0x04, 0x00, 0x04, 0x00
|
|
.byte 0xB8, 0xCB, 0x7E, 0x02, 0x05, 0x00, 0x03, 0x00, 0xEC, 0xCC, 0x7E, 0x02, 0x05, 0x00, 0x03, 0x00
|
|
.byte 0xC4, 0xCD, 0x7E, 0x02, 0x04, 0x00, 0x01, 0x00, 0x84, 0xCE, 0x7E, 0x02, 0x17, 0x00, 0x01, 0x00
|
|
.byte 0x90, 0xCF, 0x7E, 0x02, 0x0C, 0x00, 0x12, 0x00, 0x30, 0xD1, 0x7E, 0x02, 0x00, 0x00, 0x01, 0x00
|
|
.byte 0x7C, 0xC6, 0x7E, 0x02, 0x00, 0x00, 0x01, 0x00, 0xD8, 0xEE, 0x7E, 0x02, 0x00, 0x00, 0x01, 0x00
|
|
.byte 0x18, 0xEF, 0x7E, 0x02, 0x00, 0x00, 0x01, 0x00, 0x74, 0xEF, 0x7E, 0x02, 0x00, 0x00, 0x01, 0x00
|
|
.byte 0xC8, 0xEF, 0x7E, 0x02, 0x00, 0x00, 0x01, 0x00, 0x04, 0xF0, 0x7E, 0x02, 0x00, 0x00, 0x09, 0x00
|
|
.byte 0x3C, 0xF0, 0x7E, 0x02, 0x00, 0x00, 0x5C, 0x00, 0xE0, 0xF0, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00
|
|
.byte 0x3C, 0xF1, 0x7E, 0x02, 0x04, 0x00, 0x01, 0x00, 0x64, 0xF1, 0x7E, 0x02, 0x02, 0x00, 0x01, 0x00
|
|
.byte 0x3C, 0xF5, 0x7E, 0x02, 0x00, 0x00, 0x21, 0x00, 0xE0, 0xE7, 0x7E, 0x02, 0x00, 0x00, 0x04, 0x00
|
|
.byte 0x18, 0xE9, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00, 0x48, 0xE9, 0x7E, 0x02, 0x00, 0x00, 0x03, 0x00
|
|
.byte 0x70, 0xE9, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00, 0xA8, 0xE9, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00
|
|
.byte 0xD0, 0xE9, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00, 0xF8, 0xE9, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00
|
|
.byte 0x20, 0xEA, 0x7E, 0x02, 0x00, 0x00, 0x01, 0x00, 0x7C, 0xC6, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00
|
|
.byte 0x48, 0xEA, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00, 0x78, 0xEA, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00
|
|
.byte 0xA8, 0xEA, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00, 0xD0, 0xEA, 0x7E, 0x02, 0x00, 0x00, 0x11, 0x00
|
|
.byte 0xF8, 0xEA, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00, 0x34, 0xEB, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00
|
|
.byte 0x64, 0xEB, 0x7E, 0x02, 0x00, 0x00, 0x04, 0x00, 0x8C, 0xEB, 0x7E, 0x02, 0x00, 0x00, 0x01, 0x00
|
|
.byte 0x7C, 0xC6, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00, 0xCC, 0xEB, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00
|
|
.byte 0xF8, 0xEB, 0x7E, 0x02, 0x00, 0x00, 0x03, 0x00, 0x34, 0xEC, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00
|
|
.byte 0x94, 0xEC, 0x7E, 0x02, 0x00, 0x00, 0x02, 0x00, 0xD0, 0xEC, 0x7E, 0x02, 0x48, 0x00, 0x01, 0x00
|
|
.byte 0xD8, 0xE0, 0x7E, 0x02, 0x03, 0x00, 0x01, 0x00, 0xC4, 0xE1, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00
|
|
.byte 0x04, 0xE2, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00, 0x1C, 0xE2, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00
|
|
.byte 0x5C, 0xE2, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00, 0xAC, 0xE2, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00
|
|
.byte 0xC4, 0xE2, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00, 0xDC, 0xE2, 0x7E, 0x02, 0x28, 0x00, 0x01, 0x00
|
|
.byte 0xF4, 0xE2, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00, 0x0C, 0xE3, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00
|
|
.byte 0x4C, 0xE3, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00, 0x64, 0xE3, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00
|
|
.byte 0x7C, 0xE3, 0x7E, 0x02, 0x10, 0x00, 0x01, 0x00, 0x98, 0xE3, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00
|
|
.byte 0xB0, 0xE3, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00, 0xC8, 0xE3, 0x7E, 0x02, 0x03, 0x00, 0x01, 0x00
|
|
.byte 0xE0, 0xE3, 0x7E, 0x02, 0x03, 0x00, 0x01, 0x00, 0x2C, 0xE4, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00
|
|
.byte 0x34, 0xE5, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00, 0x8C, 0xE5, 0x7E, 0x02, 0x02, 0x00, 0x01, 0x00
|
|
.byte 0xCC, 0xE5, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00, 0x0C, 0xE6, 0x7E, 0x02, 0x01, 0x00, 0x01, 0x00
|
|
.byte 0x4C, 0xE6, 0x7E, 0x02, 0x32, 0x2E, 0x38, 0x33, 0x2E, 0x30, 0x30, 0x00, 0x01, 0x00, 0x04, 0x00
|
|
.byte 0x08, 0x00, 0x00, 0x00
|