.include "asm/macros.inc" .include "global.inc" .section .rodata .global UNK_020FBC08 UNK_020FBC08: ; 0x020FBC08 .byte 0x03, 0x05, 0x08, 0x05, 0x0A, 0x0F, 0x07, 0x0F, 0x17, 0x0A, 0x14, 0x1E, 0x0A, 0x14, 0x1E, 0x00 .global UNK_020FBC18 UNK_020FBC18: ; 0x020FBC18 .byte 0x0A, 0x00, 0x14, 0x00, 0x1E, 0x00, 0x28, 0x00, 0x32, 0x00, 0x3C, 0x00, 0x46, 0x00, 0x50, 0x00 .byte 0x5A, 0x00, 0x6E, 0x00, 0x82, 0x00, 0x96, 0x00, 0xAA, 0x00, 0xBE, 0x00, 0xD2, 0x00, 0xE6, 0x00 .byte 0xAA, 0x00, 0xC8, 0x00, 0xE6, 0x00, 0x04, 0x01, 0x22, 0x01, 0x40, 0x01, 0x5E, 0x01, 0x7C, 0x01 .byte 0x40, 0x01, 0x68, 0x01, 0x90, 0x01, 0xB8, 0x01, 0xE0, 0x01, 0x08, 0x02, 0x30, 0x02, 0x58, 0x02 .byte 0x64, 0x00, 0xC8, 0x00, 0x2C, 0x01, 0x90, 0x01, 0xC2, 0x01, 0xF4, 0x01, 0x26, 0x02, 0x58, 0x02 .global UNK_020FBC68 UNK_020FBC68: ; 0x020FBC68 .byte 0x00, 0x00 .global UNK_020FBC6A UNK_020FBC6A: ; 0x020FBC6A .byte 0x00, 0x00 .global UNK_020FBC6C UNK_020FBC6C: ; 0x020FBC6C .byte 0x00, 0x00 .global UNK_020FBC6E UNK_020FBC6E: ; 0x020FBC6E .byte 0x00, 0x00 .global UNK_020FBC70 UNK_020FBC70: ; 0x020FBC70 .byte 0x00, 0x00 .global UNK_020FBC72 UNK_020FBC72: ; 0x020FBC72 .byte 0x00, 0x00 .global UNK_020FBC74 UNK_020FBC74: ; 0x020FBC74 .byte 0x00, 0x00 .global UNK_020FBC76 UNK_020FBC76: ; 0x020FBC76 .byte 0x00, 0x00 .global UNK_020FBC78 UNK_020FBC78: ; 0x020FBC78 .byte 0x00, 0x00 .global UNK_020FBC7A UNK_020FBC7A: ; 0x020FBC7A .byte 0x00, 0x00 .global UNK_020FBC7C UNK_020FBC7C: ; 0x020FBC7C .byte 0x00, 0x00 .global UNK_020FBC7E UNK_020FBC7E: ; 0x020FBC7E .byte 0x00, 0x00 .global UNK_020FBC80 UNK_020FBC80: ; 0x020FBC80 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x07, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00 .byte 0x14, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x07, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00 .byte 0x05, 0x00, 0x02, 0x00, 0x06, 0x00, 0x02, 0x00, 0x07, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x00, 0x00 .byte 0x06, 0x00, 0x07, 0x00, 0x14, 0x00, 0x08, 0x00, 0x08, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x1E, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0A, 0x00, 0x09, 0x00, 0x02, 0x00, 0x0A, 0x00 .byte 0x02, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x0B, 0x00, 0x02, 0x00, 0x0C, 0x00 .byte 0x0D, 0x00, 0x14, 0x00, 0x0C, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0D, 0x00 .byte 0x05, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x00, 0x00, 0x10, 0x00, 0x11, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x02, 0x00, 0x0F, 0x00, 0x02, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x10, 0x00, 0x02, 0x00, 0x12, 0x00, 0x13, 0x00 .byte 0x14, 0x00, 0x11, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x14, 0x00, 0x15, 0x00, 0x00, 0x00, 0x12, 0x00, 0x09, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 .byte 0x16, 0x00, 0x17, 0x00, 0x00, 0x00, 0x13, 0x00, 0x07, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x18, 0x00, 0x19, 0x00, 0x14, 0x00 .byte 0x14, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x14, 0x00, 0x15, 0x00, 0x00, 0x00, 0xFF, 0xFF .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x1C, 0x00 .byte 0x1D, 0x00, 0x14, 0x00, 0x16, 0x00, 0x09, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x17, 0x00 .byte 0x05, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x00, 0x00, 0x20, 0x00, 0x21, 0x00, 0x14, 0x00, 0x18, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x22, 0x00, 0x23, 0x00 .byte 0x14, 0x00, 0x19, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x24, 0x00, 0x25, 0x00, 0x14, 0x00, 0x1A, 0x00, 0x00, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 .byte 0x26, 0x00, 0x27, 0x00, 0x0A, 0x00, 0x1B, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x28, 0x00, 0x29, 0x00, 0x00, 0x00 .byte 0x1C, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x02, 0x00, 0x1F, 0x00, 0x02, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x14, 0x00, 0x20, 0x00, 0x00, 0x00, 0xFF, 0xFF .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x2C, 0x00 .byte 0x2D, 0x00, 0x0A, 0x00, 0x21, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 .text thumb_func_start FUN_020828BC FUN_020828BC: ; 0x020828BC ldr r2, _020828E0 ; =0x00000171 ldrb r1, [r0, r2] cmp r1, #0x0 beq _020828D6 cmp r1, #0x1 bne _020828DA add r1, r2, #0x0 sub r1, #0x55 sub r2, #0x4e ldrb r1, [r0, r1] ldrb r0, [r0, r2] cmp r1, r0 bne _020828DA _020828D6: mov r0, #0x1 bx lr _020828DA: mov r0, #0x0 bx lr nop _020828E0: .word 0x00000171 thumb_func_start FUN_020828E4 FUN_020828E4: ; 0x020828E4 push {r3-r7, lr} sub sp, #0x58 str r0, [sp, #0x4] ldr r0, [sp, #0x70] mov r6, #0x0 str r0, [sp, #0x70] ldr r0, [sp, #0x74] add r5, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x8] str r6, [sp, #0x20] str r6, [sp, #0x18] str r6, [sp, #0x1c] cmp r0, #0x8 bhi _0208292A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0208290E: ; jump table (using 16-bit offset) .short _0208292A - _0208290E - 2; case 0 .short _0208292A - _0208290E - 2; case 1 .short _0208292A - _0208290E - 2; case 2 .short _02082920 - _0208290E - 2; case 3 .short _02082926 - _0208290E - 2; case 4 .short _02082920 - _0208290E - 2; case 5 .short _02082926 - _0208290E - 2; case 6 .short _02082920 - _0208290E - 2; case 7 .short _02082926 - _0208290E - 2; case 8 _02082920: mov r0, #0x1 str r0, [sp, #0x18] b _0208292A _02082926: mov r0, #0x1 str r0, [sp, #0x1c] _0208292A: mov r0, #0x1 mov r1, #0x0 str r0, [sp, #0x0] mov r0, #0x5a add r2, r1, #0x0 add r3, r5, #0x0 bl GfGfxLoader_LoadFromNarc str r0, [sp, #0x14] mov r0, #0x5a mov r1, #0x0 bl GetNarcMemberSizeByIdPair mov r1, #0x30 bl _u32_div_f str r0, [sp, #0x24] ldr r1, [sp, #0x24] add r0, r5, #0x0 add r1, r1, #0x1 bl AllocFromHeapAtEnd add r5, r0, #0x0 ldr r0, [sp, #0x78] cmp r0, #0x1 bne _02082968 ldr r0, [sp, #0x7c] cmp r0, #0x1 bne _02082968 mov r0, #0x1 str r0, [sp, #0x20] _02082968: ldr r0, [sp, #0x24] mov r2, #0x0 cmp r0, #0x0 ble _02082A1A ldr r3, [sp, #0x14] _02082972: ldrh r7, [r3, #0x20] lsl r0, r7, #0x1d lsr r1, r0, #0x1d ldr r0, [sp, #0x70] cmp r0, r1 bne _02082A10 ldr r0, [sp, #0x20] cmp r0, #0x1 bne _0208298E lsl r0, r7, #0x14 lsr r0, r0, #0x1e cmp r0, #0x1 beq _02082A10 b _0208299A _0208298E: lsl r0, r7, #0x14 lsr r0, r0, #0x1e cmp r0, #0x2 beq _02082A10 cmp r0, #0x3 beq _02082A10 _0208299A: ldr r0, [sp, #0x18] cmp r0, #0x1 bne _020829AA ldrh r0, [r3, #0x20] lsl r0, r0, #0x16 lsr r0, r0, #0x1f beq _02082A10 b _020829CA _020829AA: ldr r0, [sp, #0x1c] cmp r0, #0x1 ldrh r0, [r3, #0x20] bne _020829BA lsl r0, r0, #0x17 lsr r0, r0, #0x1f beq _02082A10 b _020829CA _020829BA: lsl r1, r0, #0x16 lsr r1, r1, #0x1f cmp r1, #0x1 beq _02082A10 lsl r0, r0, #0x17 lsr r0, r0, #0x1f cmp r0, #0x1 beq _02082A10 _020829CA: cmp r4, #0x0 bne _020829D6 ldrh r0, [r3, #0x20] lsl r0, r0, #0x1c lsr r0, r0, #0x1f bne _02082A06 _020829D6: cmp r4, #0x1 bne _020829E2 ldrh r0, [r3, #0x20] lsl r0, r0, #0x1b lsr r0, r0, #0x1f bne _02082A06 _020829E2: cmp r4, #0x2 bne _020829EE ldrh r0, [r3, #0x20] lsl r0, r0, #0x1a lsr r0, r0, #0x1f bne _02082A06 _020829EE: cmp r4, #0x3 bne _020829FA ldrh r0, [r3, #0x20] lsl r0, r0, #0x19 lsr r0, r0, #0x1f bne _02082A06 _020829FA: cmp r4, #0x4 bne _02082A10 ldrh r0, [r3, #0x20] lsl r0, r0, #0x18 lsr r0, r0, #0x1f beq _02082A10 _02082A06: add r1, r6, #0x1 add r0, r6, #0x0 lsl r1, r1, #0x18 lsr r6, r1, #0x18 strb r2, [r5, r0] _02082A10: ldr r0, [sp, #0x24] add r2, r2, #0x1 add r3, #0x30 cmp r2, r0 blt _02082972 _02082A1A: mov r0, #0xff strb r0, [r5, r6] ldr r0, [sp, #0x1c] cmp r0, #0x0 beq _02082A26 b _02082B4E _02082A26: ldr r0, [sp, #0x8] cmp r6, r0 bge _02082A30 bl GF_AssertFail _02082A30: mov r0, #0x0 str r0, [sp, #0x10] cmp r6, #0x0 ble _02082A5A mov r2, #0x30 _02082A3A: ldrb r1, [r5, r0] add r3, r1, #0x0 ldr r1, [sp, #0x14] mul r3, r2 add r1, r1, r3 ldrh r1, [r1, #0x20] lsl r1, r1, #0x14 lsr r1, r1, #0x1e cmp r1, #0x3 bne _02082A54 ldr r1, [sp, #0x10] add r1, r1, #0x1 str r1, [sp, #0x10] _02082A54: add r0, r0, #0x1 cmp r0, r6 blt _02082A3A _02082A5A: ldr r0, [sp, #0x10] cmp r0, #0x0 ble _02082AA2 ldr r0, [sp, #0x4] bl FUN_02082878 ldr r1, [sp, #0x10] bl _s32_div_f mov r3, #0x0 cmp r6, #0x0 ble _02082AA2 mov r0, #0x30 _02082A74: ldrb r4, [r5, r3] add r2, r4, #0x0 ldr r4, [sp, #0x14] mul r2, r0 add r2, r4, r2 ldrh r4, [r2, #0x20] lsl r4, r4, #0x14 lsr r4, r4, #0x1e cmp r4, #0x3 bne _02082A9C cmp r1, #0x0 bne _02082A9A add r4, sp, #0x28 mov r3, #0x6 _02082A90: ldmia r2!, {r0-r1} stmia r4!, {r0-r1} sub r3, r3, #0x1 bne _02082A90 b _02082AA2 _02082A9A: sub r1, r1, #0x1 _02082A9C: add r3, r3, #0x1 cmp r3, r6 blt _02082A74 _02082AA2: ldr r0, [sp, #0x8] mov r1, #0x4 sub r4, r1, r0 add r0, r4, #0x0 str r4, [sp, #0xc] cmp r0, #0x4 bge _02082B16 _02082AB0: ldr r0, [sp, #0x4] bl FUN_02082878 add r1, r6, #0x0 bl _s32_div_f lsl r0, r1, #0x10 lsr r2, r0, #0x10 ldrb r3, [r5, r2] mov r0, #0x30 add r1, r3, #0x0 ldr r3, [sp, #0x14] mul r1, r0 add r7, r3, r1 ldrh r1, [r7, #0x20] lsl r1, r1, #0x14 lsr r1, r1, #0x1e cmp r1, #0x3 bne _02082ADA sub r4, r4, #0x1 b _02082B10 _02082ADA: add r1, r4, #0x0 mul r1, r0 ldr r0, [sp, #0x4] add r3, r0, r1 mov r0, #0x6 add r3, #0x10 mov r12, r0 _02082AE8: ldmia r7!, {r0-r1} stmia r3!, {r0-r1} mov r0, r12 sub r0, r0, #0x1 mov r12, r0 bne _02082AE8 ldrb r1, [r5, r2] add r0, r5, r2 cmp r1, #0xff beq _02082B0A _02082AFC: ldrb r1, [r0, #0x1] add r2, r2, #0x1 strb r1, [r0, #0x0] ldrb r1, [r5, r2] add r0, r5, r2 cmp r1, #0xff bne _02082AFC _02082B0A: sub r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 _02082B10: add r4, r4, #0x1 cmp r4, #0x4 blt _02082AB0 _02082B16: ldr r0, [sp, #0x10] cmp r0, #0x0 ble _02082B7E ldr r0, [sp, #0xc] lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, [sp, #0x4] bl FUN_02082878 ldr r1, [sp, #0x8] bl _s32_div_f add r0, r4, r1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 add r1, r2, #0x0 mov r0, #0x30 mul r1, r0 ldr r0, [sp, #0x4] add r4, sp, #0x28 add r3, r0, r1 add r3, #0x10 mov r2, #0x6 _02082B44: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02082B44 b _02082B7E _02082B4E: cmp r6, #0x4 bhs _02082B56 bl GF_AssertFail _02082B56: mov r6, #0x0 mov r7, #0x30 _02082B5A: ldrb r0, [r5, r6] ldr r3, [sp, #0x4] mov r2, #0x6 add r1, r0, #0x0 ldr r0, [sp, #0x14] mul r1, r7 add r4, r0, r1 add r3, #0x10 _02082B6A: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02082B6A ldr r0, [sp, #0x4] add r6, r6, #0x1 add r0, #0x30 str r0, [sp, #0x4] cmp r6, #0x4 blt _02082B5A _02082B7E: add r0, r5, #0x0 bl FreeToHeap ldr r0, [sp, #0x14] bl FreeToHeap add sp, #0x58 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02082B90 FUN_02082B90: ; 0x02082B90 push {r3-r7, lr} sub sp, #0x18 str r0, [sp, #0x8] mov r0, #0x1 add r3, r1, #0x0 str r0, [sp, #0x0] mov r0, #0x5a mov r1, #0x2 mov r2, #0x0 bl GfGfxLoader_LoadFromNarc str r0, [sp, #0x14] ldr r1, _02082D10 ; =0x00000121 ldr r0, [sp, #0x8] ldrb r0, [r0, r1] cmp r0, #0x4 beq _02082BBA cmp r0, #0x6 beq _02082BBA cmp r0, #0x8 bne _02082BC0 _02082BBA: mov r0, #0x0 str r0, [sp, #0xc] b _02082BC8 _02082BC0: ldr r0, [sp, #0x8] add r1, r1, #0x6 ldrb r0, [r0, r1] str r0, [sp, #0xc] _02082BC8: ldr r0, [sp, #0xc] cmp r0, #0x4 blt _02082BD0 b _02082D06 _02082BD0: mov r1, #0x30 mul r1, r0 ldr r0, [sp, #0x8] add r7, r0, r1 ldr r0, [sp, #0xc] lsl r1, r0, #0x2 ldr r0, [sp, #0x8] add r6, r0, r1 _02082BE0: ldr r1, _02082D14 ; =0x00000122 ldr r0, [sp, #0x8] ldrb r0, [r0, r1] cmp r0, #0xb bhi _02082C6E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02082BF6: ; jump table (using 16-bit offset) .short _02082C0E - _02082BF6 - 2; case 0 .short _02082C16 - _02082BF6 - 2; case 1 .short _02082C1E - _02082BF6 - 2; case 2 .short _02082C26 - _02082BF6 - 2; case 3 .short _02082C2E - _02082BF6 - 2; case 4 .short _02082C36 - _02082BF6 - 2; case 5 .short _02082C3E - _02082BF6 - 2; case 6 .short _02082C46 - _02082BF6 - 2; case 7 .short _02082C4E - _02082BF6 - 2; case 8 .short _02082C56 - _02082BF6 - 2; case 9 .short _02082C5E - _02082BF6 - 2; case 10 .short _02082C66 - _02082BF6 - 2; case 11 _02082C0E: add r0, r7, #0x0 add r0, #0x32 ldrb r2, [r0, #0x0] b _02082C74 _02082C16: add r0, r7, #0x0 add r0, #0x33 ldrb r2, [r0, #0x0] b _02082C74 _02082C1E: add r0, r7, #0x0 add r0, #0x34 ldrb r2, [r0, #0x0] b _02082C74 _02082C26: add r0, r7, #0x0 add r0, #0x35 ldrb r2, [r0, #0x0] b _02082C74 _02082C2E: add r0, r7, #0x0 add r0, #0x36 ldrb r2, [r0, #0x0] b _02082C74 _02082C36: add r0, r7, #0x0 add r0, #0x37 ldrb r2, [r0, #0x0] b _02082C74 _02082C3E: add r0, r7, #0x0 add r0, #0x38 ldrb r2, [r0, #0x0] b _02082C74 _02082C46: add r0, r7, #0x0 add r0, #0x39 ldrb r2, [r0, #0x0] b _02082C74 _02082C4E: add r0, r7, #0x0 add r0, #0x3a ldrb r2, [r0, #0x0] b _02082C74 _02082C56: add r0, r7, #0x0 add r0, #0x3b ldrb r2, [r0, #0x0] b _02082C74 _02082C5E: add r0, r7, #0x0 add r0, #0x3c ldrb r2, [r0, #0x0] b _02082C74 _02082C66: add r0, r7, #0x0 add r0, #0x3d ldrb r2, [r0, #0x0] b _02082C74 _02082C6E: bl GF_AssertFail mov r2, #0x0 _02082C74: mov r0, #0x54 add r1, r2, #0x0 mul r1, r0 ldr r0, [sp, #0x14] add r0, r0, r1 str r0, [sp, #0x10] add r0, r6, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] bl FUN_02027740 add r0, r6, #0x0 add r0, #0xf8 ldr r2, [sp, #0x10] mov r3, #0x51 ldrsb r2, [r2, r3] ldr r0, [r0, #0x0] ldr r1, [r6, #0x0] bl FUN_02027914 ldr r0, [sp, #0x10] mov r5, #0x0 add r0, #0x50 ldrb r0, [r0, #0x0] cmp r0, #0x0 ble _02082CD2 ldr r4, [sp, #0x10] _02082CAA: ldrb r0, [r4, #0x2] add r1, r5, #0x0 str r0, [sp, #0x0] mov r0, #0x3 ldrsb r0, [r4, r0] str r0, [sp, #0x4] add r0, r6, #0x0 add r0, #0xf8 ldrb r2, [r4, #0x0] ldrb r3, [r4, #0x1] ldr r0, [r0, #0x0] bl FUN_02027964 ldr r0, [sp, #0x10] add r5, r5, #0x1 add r0, #0x50 ldrb r0, [r0, #0x0] add r4, r4, #0x4 cmp r5, r0 blt _02082CAA _02082CD2: ldr r1, [sp, #0x10] add r0, r6, #0x0 add r1, #0x52 add r0, #0xf8 str r1, [sp, #0x10] ldrb r1, [r1, #0x0] ldr r0, [r0, #0x0] bl FUN_0202787C mov r2, #0x12 add r0, r6, #0x0 add r0, #0xf8 ldr r1, [sp, #0x8] lsl r2, r2, #0x4 ldrb r1, [r1, r2] ldr r0, [r0, #0x0] bl FUN_020278AC ldr r0, [sp, #0xc] add r7, #0x30 add r0, r0, #0x1 add r6, r6, #0x4 str r0, [sp, #0xc] cmp r0, #0x4 bge _02082D06 b _02082BE0 _02082D06: ldr r0, [sp, #0x14] bl FreeToHeap add sp, #0x18 pop {r3-r7, pc} .balign 4 _02082D10: .word 0x00000121 _02082D14: .word 0x00000122 thumb_func_start FUN_02082D18 FUN_02082D18: ; 0x02082D18 push {r3-r7, lr} add r6, r0, #0x0 mov r7, #0x12 mov r4, #0x0 add r5, r6, #0x0 lsl r7, r7, #0x4 _02082D24: add r0, r5, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] bl FUN_02027740 add r0, r5, #0x0 add r0, #0xf8 mov r2, #0x0 ldr r0, [r0, #0x0] ldr r1, [r5, #0x0] mvn r2, r2 bl FUN_02027914 add r0, r5, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_0202787C add r0, r5, #0x0 add r0, #0xf8 ldrb r1, [r6, r7] ldr r0, [r0, #0x0] bl FUN_020278AC add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x4 blt _02082D24 pop {r3-r7, pc} thumb_func_start FUN_02082D60 FUN_02082D60: ; 0x02082D60 push {r3-r7, lr} sub sp, #0x20 add r7, r0, #0x0 add r6, r1, #0x0 ldrh r1, [r7, #0x20] str r2, [sp, #0x10] ldrh r0, [r7, #0x14] lsl r1, r1, #0x12 lsr r1, r1, #0x1e lsl r1, r1, #0x18 lsr r1, r1, #0x18 mov r2, #0x0 bl GenPersonalityByGenderAndNature mov r1, #0x1 str r1, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] ldr r0, _02082E60 ; =0x0F0F0F0F mov r2, #0xa str r0, [sp, #0xc] ldrh r1, [r7, #0x14] add r0, r6, #0x0 mov r3, #0x20 bl CreateMon mov r4, #0x0 add r5, r7, #0x0 _02082D9A: ldrh r1, [r5, #0xc] add r0, sp, #0x18 add r2, sp, #0x1c strh r1, [r0, #0x6] add r1, r4, #0x0 add r0, r6, #0x0 add r1, #0x36 add r2, #0x2 bl SetMonData add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, #0x4 blt _02082D9A ldr r3, [sp, #0x10] mov r0, #0x1 mov r1, #0x1a mov r2, #0xc0 bl NewMsgDataFromNarc ldrh r1, [r7, #0x16] add r4, r0, #0x0 bl NewString_ReadMsgData add r5, r0, #0x0 ldrh r1, [r7, #0x18] add r0, r4, #0x0 bl NewString_ReadMsgData str r0, [sp, #0x14] add r0, r6, #0x0 mov r1, #0x76 add r2, r5, #0x0 bl SetMonData ldr r2, [sp, #0x14] add r0, r6, #0x0 mov r1, #0x90 bl SetMonData add r0, r5, #0x0 bl String_dtor ldr r0, [sp, #0x14] bl String_dtor add r0, r4, #0x0 bl DestroyMsgData add r2, sp, #0x1c ldrb r1, [r7, #0x1a] add r0, sp, #0x18 add r2, #0x1 strb r1, [r0, #0x5] ldrb r1, [r7, #0x1b] strb r1, [r0, #0x4] ldrb r1, [r7, #0x1c] strb r1, [r0, #0x3] ldrb r1, [r7, #0x1d] strb r1, [r0, #0x2] ldrb r1, [r7, #0x1e] strb r1, [r0, #0x1] ldrb r1, [r7, #0x1f] strb r1, [r0, #0x0] add r0, r6, #0x0 mov r1, #0x13 bl SetMonData add r0, r6, #0x0 mov r1, #0x14 add r2, sp, #0x1c bl SetMonData add r2, sp, #0x18 add r0, r6, #0x0 mov r1, #0x15 add r2, #0x3 bl SetMonData add r2, sp, #0x18 add r0, r6, #0x0 mov r1, #0x16 add r2, #0x2 bl SetMonData add r2, sp, #0x18 add r0, r6, #0x0 mov r1, #0x17 add r2, #0x1 bl SetMonData add r0, r6, #0x0 mov r1, #0x18 add r2, sp, #0x18 bl SetMonData add sp, #0x20 pop {r3-r7, pc} nop _02082E60: .word 0x0F0F0F0F thumb_func_start FUN_02082E64 FUN_02082E64: ; 0x02082E64 push {r4-r7, lr} sub sp, #0x24 add r6, r3, #0x0 add r5, r2, #0x0 lsl r2, r6, #0x18 str r0, [sp, #0x10] add r7, r1, #0x0 add r0, sp, #0x14 add r1, r5, #0x0 lsr r2, r2, #0x18 ldr r4, [sp, #0x38] bl FUN_02068B68 lsl r1, r6, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_02068E14 add r5, r0, #0x0 cmp r4, #0x0 beq _02082EB0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02082E98 bl GF_AssertFail _02082E98: add r1, sp, #0x14 ldrh r0, [r1, #0x0] ldrh r1, [r1, #0x2] ldr r2, [sp, #0x3c] ldr r3, [r4, #0x0] bl FUN_02012420 add r0, sp, #0x14 ldrh r1, [r0, #0x4] str r1, [r4, #0x8] ldrh r0, [r0, #0x0] str r0, [r4, #0x4] _02082EB0: ldr r0, [sp, #0x48] ldr r3, [sp, #0x44] str r0, [sp, #0x0] str r7, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] str r0, [sp, #0xc] ldr r0, [sp, #0x10] ldr r2, [sp, #0x40] add r1, sp, #0x14 add r3, r3, r5 bl FUN_020073A0 add sp, #0x24 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02082ED0 FUN_02082ED0: ; 0x02082ED0 push {r4-r7, lr} sub sp, #0x24 str r0, [sp, #0x4] str r1, [sp, #0x8] ldr r0, [sp, #0x38] add r7, r3, #0x0 mov r5, #0x0 str r2, [sp, #0xc] str r0, [sp, #0x38] mov r1, #0x1 ldr r3, [sp, #0x8] mov r0, #0x5a add r2, r5, #0x0 add r4, r5, #0x0 str r1, [sp, #0x0] bl GfGfxLoader_LoadFromNarc str r0, [sp, #0x14] mov r0, #0x5a mov r1, #0x1 bl GetNarcMemberSizeByIdPair lsr r0, r0, #0x3 str r0, [sp, #0x18] ldr r1, [sp, #0x18] ldr r0, [sp, #0x8] add r1, r1, #0x1 bl AllocFromHeapAtEnd ldr r1, [sp, #0x18] add r6, r0, #0x0 ldr r0, [sp, #0x8] add r1, r1, #0x1 bl AllocFromHeapAtEnd str r0, [sp, #0x10] ldr r0, [sp, #0x18] add r2, r5, #0x0 cmp r0, #0x0 ble _0208300A ldr r3, [sp, #0x14] _02082F22: ldrh r0, [r3, #0x4] mov r12, r0 lsl r0, r0, #0x14 lsr r1, r0, #0x1e ldr r0, [sp, #0x38] cmp r0, r1 bne _02083000 cmp r7, #0x0 bne _02082F5A mov r0, r12 lsl r0, r0, #0x1e lsr r0, r0, #0x1e beq _02082F5A cmp r0, #0x1 bls _02082F4E add r0, r4, #0x1 lsl r0, r0, #0x18 add r1, r4, #0x0 lsr r4, r0, #0x18 ldr r0, [sp, #0x10] strb r2, [r0, r1] b _02083000 _02082F4E: add r1, r5, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x18 lsr r5, r1, #0x18 strb r2, [r6, r0] b _02083000 _02082F5A: cmp r7, #0x1 bne _02082F84 ldrh r0, [r3, #0x4] lsl r0, r0, #0x1c lsr r0, r0, #0x1e beq _02082F84 cmp r0, #0x1 bls _02082F78 add r0, r4, #0x1 lsl r0, r0, #0x18 add r1, r4, #0x0 lsr r4, r0, #0x18 ldr r0, [sp, #0x10] strb r2, [r0, r1] b _02083000 _02082F78: add r1, r5, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x18 lsr r5, r1, #0x18 strb r2, [r6, r0] b _02083000 _02082F84: cmp r7, #0x2 bne _02082FAE ldrh r0, [r3, #0x4] lsl r0, r0, #0x1a lsr r0, r0, #0x1e beq _02082FAE cmp r0, #0x1 bls _02082FA2 add r0, r4, #0x1 lsl r0, r0, #0x18 add r1, r4, #0x0 lsr r4, r0, #0x18 ldr r0, [sp, #0x10] strb r2, [r0, r1] b _02083000 _02082FA2: add r1, r5, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x18 lsr r5, r1, #0x18 strb r2, [r6, r0] b _02083000 _02082FAE: cmp r7, #0x3 bne _02082FD8 ldrh r0, [r3, #0x4] lsl r0, r0, #0x18 lsr r0, r0, #0x1e beq _02082FD8 cmp r0, #0x1 bls _02082FCC add r0, r4, #0x1 lsl r0, r0, #0x18 add r1, r4, #0x0 lsr r4, r0, #0x18 ldr r0, [sp, #0x10] strb r2, [r0, r1] b _02083000 _02082FCC: add r1, r5, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x18 lsr r5, r1, #0x18 strb r2, [r6, r0] b _02083000 _02082FD8: cmp r7, #0x4 bne _02083000 ldrh r0, [r3, #0x4] lsl r0, r0, #0x16 lsr r0, r0, #0x1e beq _02083000 cmp r0, #0x1 bls _02082FF6 add r0, r4, #0x1 lsl r0, r0, #0x18 add r1, r4, #0x0 lsr r4, r0, #0x18 ldr r0, [sp, #0x10] strb r2, [r0, r1] b _02083000 _02082FF6: add r1, r5, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x18 lsr r5, r1, #0x18 strb r2, [r6, r0] _02083000: ldr r0, [sp, #0x18] add r2, r2, #0x1 add r3, #0x8 cmp r2, r0 blt _02082F22 _0208300A: mov r1, #0xff ldr r0, [sp, #0x10] strb r1, [r6, r5] strb r1, [r0, r4] cmp r5, #0x2 bhs _0208301A bl GF_AssertFail _0208301A: ldr r2, [sp, #0x4] mov r3, #0x0 _0208301E: ldrb r0, [r6, r3] ldr r5, [sp, #0x14] add r3, r3, #0x1 lsl r1, r0, #0x3 ldr r0, [sp, #0x14] ldrh r5, [r5, r1] add r0, r0, r1 add r1, r2, #0x0 add r1, #0xd0 strh r5, [r1, #0x0] add r1, r2, #0x0 ldrh r5, [r0, #0x2] add r1, #0xd2 strh r5, [r1, #0x0] add r1, r2, #0x0 ldrh r5, [r0, #0x4] add r1, #0xd4 strh r5, [r1, #0x0] ldrh r1, [r0, #0x6] add r0, r2, #0x0 add r0, #0xd6 add r2, #0x8 strh r1, [r0, #0x0] cmp r3, #0x2 blt _0208301E cmp r4, #0x1 bhs _02083058 bl GF_AssertFail _02083058: ldr r0, [sp, #0x4] bl FUN_02082878 add r1, r4, #0x0 bl _s32_div_f lsl r0, r1, #0x10 lsr r1, r0, #0x10 ldr r0, [sp, #0x10] ldrb r0, [r0, r1] ldr r1, [sp, #0x14] lsl r2, r0, #0x3 ldr r0, [sp, #0x14] add r0, r0, r2 ldrh r2, [r1, r2] ldr r1, [sp, #0x4] add r1, #0xe0 strh r2, [r1, #0x0] ldr r1, [sp, #0x4] ldrh r2, [r0, #0x2] add r1, #0xe2 strh r2, [r1, #0x0] ldr r1, [sp, #0x4] ldrh r2, [r0, #0x4] add r1, #0xe4 strh r2, [r1, #0x0] ldrh r1, [r0, #0x6] ldr r0, [sp, #0x4] ldr r2, _02083110 ; =0x0000011E add r0, #0xe6 strh r1, [r0, #0x0] ldr r1, [sp, #0xc] ldr r0, [sp, #0x4] strb r1, [r0, r2] add r2, r0, #0x0 add r0, r1, #0x0 lsl r1, r0, #0x3 add r2, #0xd0 ldrh r4, [r2, r1] add r0, sp, #0x1c add r3, r2, r1 strh r4, [r0, #0x0] ldrh r4, [r3, #0x2] strh r4, [r0, #0x2] ldrh r4, [r3, #0x4] strh r4, [r0, #0x4] ldrh r4, [r3, #0x6] strh r4, [r0, #0x6] ldr r4, [sp, #0x4] add r4, #0xe0 ldrh r4, [r4, #0x0] strh r4, [r2, r1] ldr r1, [sp, #0x4] add r1, #0xe2 ldrh r1, [r1, #0x0] strh r1, [r3, #0x2] ldr r1, [sp, #0x4] add r1, #0xe4 ldrh r1, [r1, #0x0] strh r1, [r3, #0x4] ldr r1, [sp, #0x4] add r1, #0xe6 ldrh r1, [r1, #0x0] strh r1, [r3, #0x6] ldr r1, [sp, #0x4] ldrh r2, [r0, #0x0] add r1, #0xe0 strh r2, [r1, #0x0] ldr r1, [sp, #0x4] ldrh r2, [r0, #0x2] add r1, #0xe2 strh r2, [r1, #0x0] ldr r1, [sp, #0x4] ldrh r2, [r0, #0x4] add r1, #0xe4 strh r2, [r1, #0x0] ldrh r1, [r0, #0x6] ldr r0, [sp, #0x4] add r0, #0xe6 str r0, [sp, #0x4] strh r1, [r0, #0x0] ldr r0, [sp, #0x10] bl FreeToHeap add r0, r6, #0x0 bl FreeToHeap ldr r0, [sp, #0x14] bl FreeToHeap add sp, #0x24 pop {r4-r7, pc} .balign 4 _02083110: .word 0x0000011E thumb_func_start FUN_02083114 FUN_02083114: ; 0x02083114 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x18 blo _02083120 bl GF_AssertFail _02083120: mov r0, #0x1a add r1, r4, #0x0 mul r1, r0 ldr r0, _0208312C ; =UNK_020FBC6C ldrsb r0, [r0, r1] pop {r4, pc} .balign 4 _0208312C: .word UNK_020FBC6C thumb_func_start FUN_02083130 FUN_02083130: ; 0x02083130 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 cmp r5, #0x18 blo _02083140 bl GF_AssertFail _02083140: mov r0, #0x1a add r1, r5, #0x0 mul r1, r0 ldr r0, _02083154 ; =UNK_020FBC68 ldrh r0, [r0, r1] str r0, [r4, #0x0] ldr r0, _02083158 ; =UNK_020FBC6A ldrh r0, [r0, r1] str r0, [r6, #0x0] pop {r4-r6, pc} .balign 4 _02083154: .word UNK_020FBC68 _02083158: .word UNK_020FBC6A thumb_func_start FUN_0208315C FUN_0208315C: ; 0x0208315C push {r4, lr} add r4, r0, #0x0 cmp r4, #0x18 blo _02083168 bl GF_AssertFail _02083168: add r4, #0x2d add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02083170 FUN_02083170: ; 0x02083170 push {r3-r7, lr} add r4, r0, #0x0 add r7, r1, #0x0 add r5, r2, #0x0 add r6, r3, #0x0 cmp r4, #0x18 blo _02083182 bl GF_AssertFail _02083182: cmp r7, #0x4 bhi _0208319C add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02083192: ; jump table (using 16-bit offset) .short _0208319C - _02083192 - 2; case 0 .short _020831B0 - _02083192 - 2; case 1 .short _020831C4 - _02083192 - 2; case 2 .short _020831D8 - _02083192 - 2; case 3 .short _020831EC - _02083192 - 2; case 4 _0208319C: mov r0, #0x1a add r1, r4, #0x0 mul r1, r0 ldr r0, _02083200 ; =UNK_020FBC6E ldrh r0, [r0, r1] str r0, [r5, #0x0] ldr r0, _02083204 ; =UNK_020FBC70 ldrb r0, [r0, r1] str r0, [r6, #0x0] pop {r3-r7, pc} _020831B0: mov r0, #0x1a add r1, r4, #0x0 mul r1, r0 ldr r0, _02083208 ; =UNK_020FBC72 ldrh r0, [r0, r1] str r0, [r5, #0x0] ldr r0, _0208320C ; =UNK_020FBC74 ldrb r0, [r0, r1] str r0, [r6, #0x0] pop {r3-r7, pc} _020831C4: mov r0, #0x1a add r1, r4, #0x0 mul r1, r0 ldr r0, _02083210 ; =UNK_020FBC76 ldrh r0, [r0, r1] str r0, [r5, #0x0] ldr r0, _02083214 ; =UNK_020FBC78 ldrb r0, [r0, r1] str r0, [r6, #0x0] pop {r3-r7, pc} _020831D8: mov r0, #0x1a add r1, r4, #0x0 mul r1, r0 ldr r0, _02083218 ; =UNK_020FBC7A ldrh r0, [r0, r1] str r0, [r5, #0x0] ldr r0, _0208321C ; =UNK_020FBC7C ldrb r0, [r0, r1] str r0, [r6, #0x0] pop {r3-r7, pc} _020831EC: mov r0, #0x1a add r1, r4, #0x0 mul r1, r0 ldr r0, _02083220 ; =UNK_020FBC7E ldrh r0, [r0, r1] str r0, [r5, #0x0] ldr r0, _02083224 ; =UNK_020FBC80 ldrb r0, [r0, r1] str r0, [r6, #0x0] pop {r3-r7, pc} .balign 4 _02083200: .word UNK_020FBC6E _02083204: .word UNK_020FBC70 _02083208: .word UNK_020FBC72 _0208320C: .word UNK_020FBC74 _02083210: .word UNK_020FBC76 _02083214: .word UNK_020FBC78 _02083218: .word UNK_020FBC7A _0208321C: .word UNK_020FBC7C _02083220: .word UNK_020FBC7E _02083224: .word UNK_020FBC80 thumb_func_start FUN_02083228 FUN_02083228: ; 0x02083228 cmp r2, #0x1 bne _02083230 mov r0, #0x33 bx lr _02083230: cmp r1, #0x3 beq _0208323C cmp r1, #0x5 beq _0208323C cmp r1, #0x7 bne _02083240 _0208323C: mov r0, #0x32 bx lr _02083240: cmp r0, #0x3 bhi _02083264 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02083250: ; jump table (using 16-bit offset) .short _02083258 - _02083250 - 2; case 0 .short _0208325C - _02083250 - 2; case 1 .short _02083260 - _02083250 - 2; case 2 .short _02083264 - _02083250 - 2; case 3 _02083258: mov r0, #0x2e bx lr _0208325C: mov r0, #0x2f bx lr _02083260: mov r0, #0x30 bx lr _02083264: mov r0, #0x31 bx lr thumb_func_start FUN_02083268 FUN_02083268: ; 0x02083268 cmp r0, #0x4 bhi _02083292 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02083278: ; jump table (using 16-bit offset) .short _02083282 - _02083278 - 2; case 0 .short _02083286 - _02083278 - 2; case 1 .short _0208328A - _02083278 - 2; case 2 .short _0208328E - _02083278 - 2; case 3 .short _02083292 - _02083278 - 2; case 4 _02083282: mov r0, #0x2e bx lr _02083286: mov r0, #0x2f bx lr _0208328A: mov r0, #0x30 bx lr _0208328E: mov r0, #0x31 bx lr _02083292: mov r0, #0x33 bx lr .balign 4 thumb_func_start FUN_02083298 FUN_02083298: ; 0x02083298 ldr r3, _020832A0 ; =FUN_020832A4 mov r1, #0x2 bx r3 nop _020832A0: .word FUN_020832A4 thumb_func_start FUN_020832A4 FUN_020832A4: ; 0x020832A4 cmp r1, #0x5 bne _020832AC mov r0, #0x34 bx lr _020832AC: cmp r0, #0x4 bhi _020832D6 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020832BC: ; jump table (using 16-bit offset) .short _020832C6 - _020832BC - 2; case 0 .short _020832CA - _020832BC - 2; case 1 .short _020832CE - _020832BC - 2; case 2 .short _020832D2 - _020832BC - 2; case 3 .short _020832D6 - _020832BC - 2; case 4 _020832C6: mov r0, #0x29 bx lr _020832CA: mov r0, #0x2a bx lr _020832CE: mov r0, #0x2b bx lr _020832D2: mov r0, #0x2c bx lr _020832D6: mov r0, #0x2d bx lr .balign 4 thumb_func_start FUN_020832DC FUN_020832DC: ; 0x020832DC mov r1, #0x3 sub r0, r1, r0 bx lr .balign 4 thumb_func_start FUN_020832E4 FUN_020832E4: ; 0x020832E4 mov r1, #0x3 sub r0, r1, r0 bx lr .balign 4 thumb_func_start FUN_020832EC FUN_020832EC: ; 0x020832EC ldr r1, _02083304 ; =0x00000121 ldrb r0, [r0, r1] cmp r0, #0x3 beq _020832FC cmp r0, #0x5 beq _020832FC cmp r0, #0x7 bne _02083300 _020832FC: mov r0, #0x1 bx lr _02083300: mov r0, #0x0 bx lr .balign 4 _02083304: .word 0x00000121 thumb_func_start FUN_02083308 FUN_02083308: ; 0x02083308 push {r4-r5} sub sp, #0x50 ldr r5, _02083368 ; =UNK_020FBC18 add r4, sp, #0x0 mov r3, #0x28 _02083312: ldrh r2, [r5, #0x0] add r5, r5, #0x2 strh r2, [r4, #0x0] add r4, r4, #0x2 sub r3, r3, #0x1 bne _02083312 mov r3, #0xc mul r3, r1 add r1, r0, r3 mov r3, #0x4a lsl r3, r3, #0x2 add r4, r3, #0x0 add r4, #0x49 ldrb r4, [r0, r4] mov r2, #0x0 ldrsh r1, [r1, r3] cmp r4, #0x1 bne _0208333A add r4, sp, #0x40 b _02083344 _0208333A: sub r3, #0x8 ldrb r0, [r0, r3] add r4, sp, #0x0 lsl r0, r0, #0x4 add r4, r4, r0 _02083344: mov r3, #0x0 _02083346: ldrh r0, [r4, #0x0] cmp r1, r0 bge _02083354 add sp, #0x50 add r0, r2, #0x0 pop {r4-r5} bx lr _02083354: add r3, r3, #0x1 add r2, r2, #0x1 add r4, r4, #0x2 cmp r3, #0x8 blt _02083346 add r0, r2, #0x0 add sp, #0x50 pop {r4-r5} bx lr nop _02083368: .word UNK_020FBC18 thumb_func_start FUN_0208336C FUN_0208336C: ; 0x0208336C push {r4-r5} sub sp, #0x10 ldr r5, _020833CC ; =UNK_020FBC08 add r4, sp, #0x0 mov r3, #0xf _02083376: ldrb r2, [r5, #0x0] add r5, r5, #0x1 strb r2, [r4, #0x0] add r4, r4, #0x1 sub r3, r3, #0x1 bne _02083376 mov r2, #0xc mul r2, r1 ldr r3, _020833D0 ; =0x0000012A add r1, r0, r2 ldrsh r1, [r1, r3] cmp r1, #0x0 bne _02083398 add sp, #0x10 mov r0, #0x0 pop {r4-r5} bx lr _02083398: add r2, r3, #0x0 add r2, #0x47 ldrb r2, [r0, r2] cmp r2, #0x1 bne _020833A6 add r4, sp, #0xc b _020833B2 _020833A6: sub r3, #0xa ldrb r2, [r0, r3] add r4, sp, #0x0 lsl r0, r2, #0x1 add r0, r2, r0 add r4, r4, r0 _020833B2: mov r0, #0x1 mov r3, #0x0 _020833B6: ldrb r2, [r4, r3] cmp r1, r2 ble _020833C4 add r3, r3, #0x1 add r0, r0, #0x1 cmp r3, #0x3 blt _020833B6 _020833C4: add sp, #0x10 pop {r4-r5} bx lr nop _020833CC: .word UNK_020FBC08 _020833D0: .word 0x0000012A thumb_func_start FUN_020833D4 FUN_020833D4: ; 0x020833D4 push {r3, lr} cmp r0, #0x0 bne _020833EE mov r0, #0x1 bl TextFlags_SetCanABSpeedUpPrint mov r0, #0x3 bl FUN_02002B7C mov r0, #0x1 bl FUN_02002BB8 pop {r3, pc} _020833EE: mov r0, #0x1 bl FUN_02002B7C mov r0, #0x0 bl TextFlags_SetCanABSpeedUpPrint mov r0, #0x0 bl FUN_02002BB8 pop {r3, pc} .balign 4 thumb_func_start FUN_02083404 FUN_02083404: ; 0x02083404 push {r3, lr} mov r0, #0x0 bl TextFlags_SetCanABSpeedUpPrint mov r0, #0x0 bl FUN_02002B7C mov r0, #0x0 bl FUN_02002BB8 pop {r3, pc} .balign 4 thumb_func_start FUN_0208341C FUN_0208341C: ; 0x0208341C push {r3, lr} cmp r1, #0x4 bhi _0208344C add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0208342E: ; jump table (using 16-bit offset) .short _02083438 - _0208342E - 2; case 0 .short _0208343C - _0208342E - 2; case 1 .short _02083440 - _0208342E - 2; case 2 .short _02083444 - _0208342E - 2; case 3 .short _02083448 - _0208342E - 2; case 4 _02083438: add r0, #0x7a pop {r3, pc} _0208343C: add r0, #0x7e pop {r3, pc} _02083440: add r0, #0x82 pop {r3, pc} _02083444: add r0, #0x86 pop {r3, pc} _02083448: add r0, #0x8a pop {r3, pc} _0208344C: bl GF_AssertFail mov r0, #0x7a pop {r3, pc} thumb_func_start FUN_02083454 FUN_02083454: ; 0x02083454 push {r4-r5, lr} sub sp, #0xc add r5, r0, #0x0 mov r4, #0x0 cmp r5, #0x3 beq _02083464 cmp r1, #0x1 bne _02083474 _02083464: bl LCRandom mov r1, #0xc bl _s32_div_f add sp, #0xc add r0, r1, #0x0 pop {r4-r5, pc} _02083474: add r0, sp, #0x0 add r1, r4, #0x0 mov r2, #0xc bl MI_CpuFill8 mov r1, #0x2 add r0, sp, #0x0 strb r1, [r0, #0x0] mov r1, #0x3 strb r1, [r0, #0x1] mov r1, #0x4 add r4, r4, #0x3 strb r1, [r0, #0x2] cmp r5, #0x1 blt _020834A6 mov r0, #0x0 add r2, sp, #0x0 strb r0, [r2, r4] mov r1, #0x1 add r0, r4, #0x1 strb r1, [r2, r0] add r1, r4, #0x2 mov r0, #0x5 add r4, r4, #0x3 strb r0, [r2, r1] _020834A6: cmp r5, #0x2 blt _020834BE mov r0, #0x6 add r2, sp, #0x0 strb r0, [r2, r4] mov r1, #0x7 add r0, r4, #0x1 strb r1, [r2, r0] add r1, r4, #0x2 mov r0, #0x8 add r4, r4, #0x3 strb r0, [r2, r1] _020834BE: bl LCRandom add r1, r4, #0x0 bl _s32_div_f add r0, sp, #0x0 ldrb r0, [r0, r1] add sp, #0xc pop {r4-r5, pc}