diff --git a/asm/include/overlay_27.inc b/asm/include/overlay_27.inc index f2c88973..fc0a24b5 100644 --- a/asm/include/overlay_27.inc +++ b/asm/include/overlay_27.inc @@ -43,3 +43,43 @@ .public RemoveEmptyItemsInBag .public PreprocessString .public sub_0200FD48 +.public sub_02042AAC +.public sub_020433C0 +.public FreeDBox +.public sub_02043568 +.public sub_0202E6E4 +.public FreePortraitBox +.public sub_02042744 +.public sub_0204317C +.public sub_0200FFAC +.public sub_020426B4 +.public RemoveItemNoHole +.public sub_0200FFF4 +.public ov11_022E6EC8 +.public sub_02042BBC +.public ov11_0230CE58 +.public sub_02043468 +.public sub_02042B20 +.public sub_0202E6C8 +.public sub_02042B50 +.public sub_02042B84 +.public sub_0202A66C +.public sub_02042664 +.public ov11_022E6E8C +.public sub_02042ADC +.public sub_020582E0 +.public sub_0201007C +.public sub_0202F23C +.public sub_02017CCC +.public sub_0204352C +.public GetNormalMenuResult +.public sub_02043400 +.public sub_02010154 +.public sub_020101A0 +.public sub_020434FC +.public sub_0204323C +.public sub_02043434 +.public GetPressedButtons +.public sub_020440B8 +.public ov00_022E6E68 +.public GetItemAtIdx diff --git a/asm/overlay_27.s b/asm/overlay_27.s index e617b7d0..52eee4e4 100644 --- a/asm/overlay_27.s +++ b/asm/overlay_27.s @@ -165,22 +165,77 @@ _0238A37C: .word 0x02324DB8 _0238A380: .word 0x0238CE80 _0238A384: .word 0x000008D4 arm_func_end ov27_0238A140 -_0238A388: - .byte 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0x13, 0x00, 0x10, 0x80, 0x15, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x80, 0xCE, 0x38, 0x02, 0xF0, 0x40, 0x2D, 0xE9, 0x63, 0xDF, 0x4D, 0xE2, 0x28, 0x05, 0x9F, 0xE5 - .byte 0x00, 0xC0, 0x90, 0xE5, 0x00, 0x10, 0x9C, 0xE5, 0x07, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90 - .byte 0x42, 0x01, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x9A, 0x00, 0x00, 0xEA - .byte 0xB2, 0x00, 0x00, 0xEA, 0xD3, 0x00, 0x00, 0xEA, 0x07, 0x01, 0x00, 0xEA, 0x0D, 0x01, 0x00, 0xEA - .byte 0x32, 0x01, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x8C, 0xE5, 0x37, 0x01, 0x00, 0xEA - .byte 0x04, 0x10, 0x9C, 0xE5, 0x06, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90, 0x33, 0x01, 0x00, 0xEA - .byte 0x05, 0x00, 0x00, 0xEA, 0x21, 0x00, 0x00, 0xEA, 0x36, 0x00, 0x00, 0xEA, 0x60, 0x00, 0x00, 0xEA - .byte 0x74, 0x00, 0x00, 0xEA, 0x85, 0x00, 0x00, 0xEA, 0x84, 0x00, 0x00, 0xEA, 0x0C, 0x10, 0x9C, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x1C, 0x10, 0x9C, 0x05, 0x00, 0x00, 0x51, 0x03, 0x05, 0x00, 0x00, 0x1A - .byte 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x8C, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x05, 0x10, 0xA0, 0xE3 - .byte 0x04, 0x10, 0x80, 0xE5, 0x21, 0x01, 0x00, 0xEA, 0x90, 0x34, 0x9F, 0xE5, 0x01, 0x1B, 0xA0, 0xE3 - .byte 0xB4, 0x33, 0xCC, 0xE1, 0x00, 0x20, 0xA0, 0xE3, 0x7C, 0x04, 0x9F, 0xE5, 0x00, 0x20, 0x8D, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0xB8, 0x20, 0x81, 0xE2 + + arm_func_start ov27_0238A388 +ov27_0238A388: ; 0x0238A388 + ldr r0, _0238A3A0 ; =0x0238CE80 + ldr r1, [r0] + cmp r1, #0 + movne r1, #0 + strne r1, [r0] + bx lr + .align 2, 0 +_0238A3A0: .word 0x0238CE80 + arm_func_end ov27_0238A388 + + arm_func_start ov27_0238A3A4 +ov27_0238A3A4: ; 0x0238A3A4 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #0x18c + ldr r0, _0238A8DC ; =0x0238CE80 + ldr ip, [r0] + ldr r1, [ip] + cmp r1, #7 + addls pc, pc, r1, lsl #2 + b _0238A8D0 +_0238A3C4: ; jump table + b _0238A3E4 ; case 0 + b _0238A3F0 ; case 1 + b _0238A63C ; case 2 + b _0238A6A0 ; case 3 + b _0238A728 ; case 4 + b _0238A7FC ; case 5 + b _0238A818 ; case 6 + b _0238A8B0 ; case 7 +_0238A3E4: + mov r0, #1 + str r0, [ip] + b _0238A8D0 +_0238A3F0: + ldr r1, [ip, #4] + cmp r1, #6 + addls pc, pc, r1, lsl #2 + b _0238A8D0 +_0238A400: ; jump table + b _0238A41C ; case 0 + b _0238A490 ; case 1 + b _0238A4E8 ; case 2 + b _0238A594 ; case 3 + b _0238A5E8 ; case 4 + b _0238A630 ; case 5 + b _0238A630 ; case 6 +_0238A41C: + ldr r1, [ip, #0xc] + cmp r1, #0 + ldreq r1, [ip, #0x1c] + cmpeq r1, #0 + bne _0238A448 + mov r1, #2 + str r1, [ip] + ldr r0, [r0] + mov r1, #5 + str r1, [r0, #4] + b _0238A8D0 +_0238A448: + ldr r3, _0238A8E0 ; =0x00000408 + mov r1, #0x400 + strh r3, [ip, #0x34] + mov r2, #0 + ldr r0, _0238A8DC ; =0x0238CE80 + str r2, [sp] + ldr r0, [r0] + add r2, r1, #0xb8 + arm_func_end ov27_0238A3A4 arm_func_start ov27_0238A468 ov27_0238A468: ; 0x0238A468 @@ -195,83 +250,313 @@ ov27_0238A468: ; 0x0238A468 str r1, [r0, #4] b _0238A8D0 _0238A490: - .byte 0x18, 0x10, 0x9C, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x0D, 0x00, 0x00, 0xDA, 0xC8, 0x10, 0x8D, 0xE5 - .byte 0x08, 0x30, 0xA0, 0xE3, 0xA4, 0x10, 0x8D, 0xE2, 0xB4, 0x33, 0xCC, 0xE1, 0x00, 0x10, 0x8D, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x01, 0x1B, 0xA0, 0xE3, 0x38, 0x00, 0x80, 0xE2, 0xB9, 0x20, 0x81, 0xE2 - .byte 0x3C, 0x64, 0xF2, 0xEB, 0x10, 0x04, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x10, 0x80, 0xE5, 0x00, 0x04, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x04, 0x10, 0x80, 0xE5, 0xF9, 0x00, 0x00, 0xEA, 0x2C, 0x10, 0xDC, 0xE5, 0x00, 0x00, 0x51, 0xE3 - .byte 0x11, 0x00, 0x00, 0x0A, 0xE8, 0x23, 0x9F, 0xE5, 0xA4, 0x10, 0x8D, 0xE2, 0xB4, 0x23, 0xCC, 0xE1 - .byte 0x00, 0x10, 0x8D, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x1B, 0xA0, 0xE3, 0x38, 0x00, 0x80, 0xE2 - .byte 0xBA, 0x20, 0x81, 0xE2, 0x08, 0x30, 0x81, 0xE2, 0x26, 0x64, 0xF2, 0xEB, 0xB8, 0x03, 0x9F, 0xE5 - .byte 0x04, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x06, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0xE4, 0x00, 0x00, 0xEA, 0x1C, 0x10, 0x9C, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x04, 0x00, 0xA0, 0xD3, 0x04, 0x00, 0x8C, 0xD5, 0xDF, 0x00, 0x00, 0xDA - .byte 0x88, 0x33, 0x9F, 0xE5, 0xA4, 0x10, 0x8D, 0xE2, 0xB4, 0x33, 0xCC, 0xE1, 0x00, 0x10, 0x8D, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x01, 0x1B, 0xA0, 0xE3, 0x38, 0x00, 0x80, 0xE2, 0xBC, 0x20, 0x81, 0xE2 - .byte 0x10, 0x64, 0xF2, 0xEB, 0x60, 0x03, 0x9F, 0xE5, 0x04, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 - .byte 0x03, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5 - .byte 0xCE, 0x00, 0x00, 0xEA, 0x28, 0x10, 0x9C, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x04, 0x00, 0xA0, 0xD3 - .byte 0x04, 0x00, 0x8C, 0xD5, 0xC9, 0x00, 0x00, 0xDA, 0x30, 0x33, 0x9F, 0xE5, 0xA4, 0x10, 0x8D, 0xE2 - .byte 0xB4, 0x33, 0xCC, 0xE1, 0x00, 0x10, 0x8D, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x1B, 0xA0, 0xE3 - .byte 0x38, 0x00, 0x80, 0xE2, 0xBB, 0x20, 0x81, 0xE2, 0xFA, 0x63, 0xF2, 0xEB, 0x08, 0x03, 0x9F, 0xE5 - .byte 0x04, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x04, 0x20, 0x80, 0xE5, 0xB9, 0x00, 0x00, 0xEA, 0xF4, 0x22, 0x9F, 0xE5, 0x01, 0x1B, 0xA0, 0xE3 - .byte 0xB4, 0x23, 0xCC, 0xE1, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x8D, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xBD, 0x20, 0x81, 0xE2, 0x38, 0x00, 0x80, 0xE2, 0x08, 0x30, 0x81, 0xE2, 0xE9, 0x63, 0xF2, 0xEB - .byte 0xC4, 0x02, 0x9F, 0xE5, 0x04, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x05, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0xA7, 0x00, 0x00, 0xEA - .byte 0x02, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x8C, 0xE5, 0xA4, 0x00, 0x00, 0xEA, 0xD8, 0x00, 0xDC, 0xE1 - .byte 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x04, 0x00, 0x00, 0x0A, 0xBD, 0x92, 0xF2, 0xEB - .byte 0x84, 0x02, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x10, 0xC0, 0xE5 - .byte 0x74, 0x02, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD9, 0x00, 0xD0, 0xE1 - .byte 0x01, 0x00, 0x50, 0xE1, 0x04, 0x00, 0x00, 0x0A, 0xF4, 0x93, 0xF2, 0xEB, 0x58, 0x02, 0x9F, 0xE5 - .byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x09, 0x10, 0xC0, 0xE5, 0x48, 0x02, 0x9F, 0xE5 - .byte 0x03, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x8B, 0x00, 0x00, 0xEA - .byte 0x3C, 0x00, 0x8C, 0xE2, 0x04, 0x40, 0x9C, 0xE5, 0x38, 0x58, 0x9C, 0xE5, 0xF4, 0x60, 0x8D, 0xE2 - .byte 0x02, 0x7B, 0x80, 0xE2, 0x09, 0xE0, 0xA0, 0xE3, 0x0F, 0x00, 0xB7, 0xE8, 0x0F, 0x00, 0xA6, 0xE8 - .byte 0x01, 0xE0, 0x5E, 0xE2, 0xFB, 0xFF, 0xFF, 0x1A, 0x03, 0x00, 0x97, 0xE8, 0x03, 0x00, 0x86, 0xE8 - .byte 0x0C, 0x00, 0xA0, 0xE1, 0xAB, 0xDA, 0xF1, 0xEB, 0xFC, 0x21, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x02, 0x9F, 0xE5, 0x00, 0x10, 0x82, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x06, 0x00, 0x54, 0xE3 - .byte 0x03, 0x00, 0x00, 0x1A, 0xF4, 0x10, 0x8D, 0xE2, 0x05, 0x00, 0xA0, 0xE1, 0xD5, 0x09, 0xFE, 0xEB - .byte 0x06, 0x00, 0x00, 0xEA, 0x01, 0x0C, 0x15, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x7C, 0x01, 0x9D, 0xE5 - .byte 0x78, 0x21, 0x9D, 0xE5, 0x32, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x00, 0xEA, 0xD1, 0x71, 0xFD, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE3, 0x6A, 0x00, 0x00, 0xEA, 0x38, 0x08, 0x9C, 0xE5, 0x01, 0x0C, 0x10, 0xE3 - .byte 0x02, 0x00, 0x00, 0x1A, 0xE3, 0x71, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x63, 0x00, 0x00, 0x0A - .byte 0x94, 0x01, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x90, 0xE5, 0x30, 0x20, 0x93, 0xE5 - .byte 0x00, 0x00, 0x52, 0xE3, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x00, 0x51, 0xE3, 0x0A, 0x00, 0x00, 0x0A - .byte 0x01, 0x00, 0x52, 0xE3, 0x00, 0x00, 0xE0, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x52, 0xE3 - .byte 0x33, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x00, 0xEA, 0x32, 0x00, 0xA0, 0xE3, 0x38, 0x18, 0x93, 0xE5 - .byte 0x01, 0x0C, 0x11, 0xE3, 0x00, 0x00, 0x00, 0x1A, 0xBF, 0x71, 0xFD, 0xEB, 0x54, 0x00, 0x8D, 0xE2 - .byte 0x00, 0x40, 0xA0, 0xE3, 0xBD, 0x63, 0xF2, 0xEB, 0x3C, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x38, 0x00, 0x80, 0xE2, 0xB0, 0x7F, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x1A - .byte 0x6A, 0x00, 0x00, 0xEB, 0x20, 0x01, 0x9F, 0xE5, 0x54, 0x30, 0x8D, 0xE2, 0x00, 0x20, 0x90, 0xE5 - .byte 0xD8, 0x00, 0xD2, 0xE1, 0xB4, 0x13, 0xD2, 0xE1, 0x38, 0x20, 0x82, 0xE2, 0x9A, 0x92, 0xF2, 0xEB - .byte 0x01, 0x40, 0xA0, 0xE3, 0x00, 0x00, 0x54, 0xE3, 0xFC, 0x00, 0x9F, 0x15, 0x05, 0x10, 0xA0, 0x13 - .byte 0x00, 0x00, 0x90, 0x15, 0x00, 0x10, 0x80, 0x15, 0xEC, 0x00, 0x9F, 0x05, 0x06, 0x10, 0xA0, 0x03 - .byte 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05, 0x34, 0x00, 0x00, 0xEA, 0x49, 0x00, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0xD0, 0x00, 0x9F, 0x05, 0x06, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05 - .byte 0x00, 0x10, 0x80, 0x05, 0x2D, 0x00, 0x00, 0xEA, 0x38, 0x08, 0x9C, 0xE5, 0x01, 0x0C, 0x10, 0xE3 - .byte 0x02, 0x00, 0x00, 0x1A, 0xA7, 0x71, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x27, 0x00, 0x00, 0x0A - .byte 0x04, 0x00, 0x8D, 0xE2, 0x00, 0x40, 0xA0, 0xE3, 0x94, 0x63, 0xF2, 0xEB, 0x98, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x38, 0x00, 0x80, 0xE2, 0x01, 0x0B, 0x80, 0xE2, 0x86, 0x7F, 0xF2, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x09, 0x00, 0x00, 0x1A, 0x40, 0x00, 0x00, 0xEB, 0x78, 0x00, 0x9F, 0xE5 - .byte 0x04, 0x30, 0x8D, 0xE2, 0x00, 0x10, 0x90, 0xE5, 0x38, 0x20, 0x81, 0xE2, 0xD8, 0x00, 0xD1, 0xE1 - .byte 0xB6, 0x13, 0xD1, 0xE1, 0x01, 0x2B, 0x82, 0xE2, 0x6F, 0x92, 0xF2, 0xEB, 0x01, 0x40, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x54, 0xE3, 0x50, 0x00, 0x9F, 0x15, 0x07, 0x10, 0xA0, 0x13, 0x00, 0x00, 0x90, 0x15 - .byte 0x00, 0x10, 0x80, 0x15, 0x0D, 0x00, 0x00, 0x1A, 0x13, 0x00, 0x00, 0xEB, 0x38, 0x00, 0x9F, 0xE5 - .byte 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x07, 0x00, 0x00, 0xEA - .byte 0x1C, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x00, 0xEB - .byte 0x14, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 + ldr r1, [ip, #0x18] + cmp r1, #0 + ble _0238A4D4 + str r1, [sp, #0xc8] + mov r3, #8 + add r1, sp, #0xa4 + strh r3, [ip, #0x34] + str r1, [sp] + ldr r0, [r0] + mov r1, #0x400 + add r0, r0, #0x38 + add r2, r1, #0xb9 + bl PreprocessStringFromMessageId + ldr r0, _0238A8DC ; =0x0238CE80 + mov r1, #4 + ldr r0, [r0] + str r1, [r0] +_0238A4D4: + ldr r0, _0238A8DC ; =0x0238CE80 + mov r1, #2 + ldr r0, [r0] + str r1, [r0, #4] + b _0238A8D0 +_0238A4E8: + ldrb r1, [ip, #0x2c] + cmp r1, #0 + beq _0238A53C + ldr r2, _0238A8E4 ; =0x00000618 + add r1, sp, #0xa4 + strh r2, [ip, #0x34] + str r1, [sp] + ldr r0, [r0] + mov r1, #0x400 + add r0, r0, #0x38 + add r2, r1, #0xba + add r3, r1, #8 + bl PreprocessStringFromMessageId + ldr r0, _0238A8DC ; =0x0238CE80 + mov r3, #4 + ldr r2, [r0] + mov r1, #6 + str r3, [r2] + ldr r0, [r0] + str r1, [r0, #4] + b _0238A8D0 +_0238A53C: + ldr r1, [ip, #0x1c] + cmp r1, #0 + movle r0, #4 + strle r0, [ip, #4] + ble _0238A8D0 + ldr r3, _0238A8E0 ; =0x00000408 + add r1, sp, #0xa4 + strh r3, [ip, #0x34] + str r1, [sp] + ldr r0, [r0] + mov r1, #0x400 + add r0, r0, #0x38 + add r2, r1, #0xbc + bl PreprocessStringFromMessageId + ldr r0, _0238A8DC ; =0x0238CE80 + mov r3, #4 + ldr r2, [r0] + mov r1, #3 + str r3, [r2] + ldr r0, [r0] + str r1, [r0, #4] + b _0238A8D0 +_0238A594: + ldr r1, [ip, #0x28] + cmp r1, #0 + movle r0, #4 + strle r0, [ip, #4] + ble _0238A8D0 + ldr r3, _0238A8E0 ; =0x00000408 + add r1, sp, #0xa4 + strh r3, [ip, #0x34] + str r1, [sp] + ldr r0, [r0] + mov r1, #0x400 + add r0, r0, #0x38 + add r2, r1, #0xbb + bl PreprocessStringFromMessageId + ldr r0, _0238A8DC ; =0x0238CE80 + mov r2, #4 + ldr r1, [r0] + str r2, [r1] + ldr r0, [r0] + str r2, [r0, #4] + b _0238A8D0 +_0238A5E8: + ldr r2, _0238A8E4 ; =0x00000618 + mov r1, #0x400 + strh r2, [ip, #0x34] + mov r2, #0 + str r2, [sp] + ldr r0, [r0] + add r2, r1, #0xbd + add r0, r0, #0x38 + add r3, r1, #8 + bl PreprocessStringFromMessageId + ldr r0, _0238A8DC ; =0x0238CE80 + mov r3, #4 + ldr r2, [r0] + mov r1, #5 + str r3, [r2] + ldr r0, [r0] + str r1, [r0, #4] + b _0238A8D0 +_0238A630: + mov r0, #2 + str r0, [ip] + b _0238A8D0 +_0238A63C: + ldrsb r0, [ip, #8] + mvn r1, #1 + cmp r0, r1 + beq _0238A660 + bl FreeDBox + ldr r0, _0238A8DC ; =0x0238CE80 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #8] +_0238A660: + ldr r0, _0238A8DC ; =0x0238CE80 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #9] + cmp r0, r1 + beq _0238A68C + bl FreePortraitBox + ldr r0, _0238A8DC ; =0x0238CE80 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #9] +_0238A68C: + ldr r0, _0238A8DC ; =0x0238CE80 + mov r1, #3 + ldr r0, [r0] + str r1, [r0] + b _0238A8D0 +_0238A6A0: + add r0, ip, #0x3c + ldr r4, [ip, #4] + ldr r5, [ip, #0x838] + add r6, sp, #0xf4 + add r7, r0, #0x800 + mov lr, #9 +_0238A6B8: + ldmia r7!, {r0, r1, r2, r3} + stmia r6!, {r0, r1, r2, r3} + subs lr, lr, #1 + bne _0238A6B8 + ldmia r7, {r0, r1} + stmia r6, {r0, r1} + mov r0, ip + bl MemFree + ldr r2, _0238A8DC ; =0x0238CE80 + mov r1, #0 + ldr r0, _0238A8E8 ; =0x02324DB8 + str r1, [r2] + str r1, [r0] + cmp r4, #6 + bne _0238A704 + add r1, sp, #0xf4 + mov r0, r5 + bl ov11_0230CE58 + b _0238A720 +_0238A704: + tst r5, #0x100 + beq _0238A71C + ldr r0, [sp, #0x17c] + ldr r2, [sp, #0x178] + blx r2 + b _0238A720 +_0238A71C: + bl ov00_022E6E68 +_0238A720: + mov r0, #4 + b _0238A8D4 +_0238A728: + ldr r0, [ip, #0x838] + tst r0, #0x100 + bne _0238A740 + bl ov11_022E6EC8 + cmp r0, #0 + beq _0238A8D0 +_0238A740: + ldr r0, _0238A8DC ; =0x0238CE80 + mov r1, #0 + ldr r3, [r0] + ldr r2, [r3, #0x30] + cmp r2, #0 + movne r1, #1 + cmp r1, #0 + beq _0238A78C + cmp r2, #1 + mvn r0, #0 + beq _0238A778 + cmp r2, #2 + moveq r0, #0x33 + b _0238A77C +_0238A778: + mov r0, #0x32 +_0238A77C: + ldr r1, [r3, #0x838] + tst r1, #0x100 + bne _0238A78C + bl ov11_022E6E8C +_0238A78C: + add r0, sp, #0x54 + mov r4, #0 + bl InitPreprocessorArgs + ldr r0, _0238A8DC ; =0x0238CE80 + ldr r0, [r0] + add r0, r0, #0x38 + bl sub_0202A66C + cmp r0, #0 + bne _0238A7D4 + bl ov27_0238A960 + ldr r0, _0238A8DC ; =0x0238CE80 + add r3, sp, #0x54 + ldr r2, [r0] + ldrsb r0, [r2, #8] + ldrh r1, [r2, #0x34] + add r2, r2, #0x38 + bl sub_0202F23C + mov r4, #1 +_0238A7D4: + cmp r4, #0 + ldrne r0, _0238A8DC ; =0x0238CE80 + movne r1, #5 + ldrne r0, [r0] + strne r1, [r0] + ldreq r0, _0238A8DC ; =0x0238CE80 + moveq r1, #6 + ldreq r0, [r0] + streq r1, [r0] + b _0238A8D0 +_0238A7FC: + bl ov27_0238A928 + cmp r0, #0 + ldreq r0, _0238A8DC ; =0x0238CE80 + moveq r1, #6 + ldreq r0, [r0] + streq r1, [r0] + b _0238A8D0 +_0238A818: + ldr r0, [ip, #0x838] + tst r0, #0x100 + bne _0238A830 + bl ov11_022E6EC8 + cmp r0, #0 + beq _0238A8D0 +_0238A830: + add r0, sp, #4 + mov r4, #0 + bl InitPreprocessorArgs + ldr r0, _0238A8DC ; =0x0238CE80 + ldr r0, [r0] + add r0, r0, #0x38 + add r0, r0, #0x400 + bl sub_0202A66C + cmp r0, #0 + bne _0238A880 + bl ov27_0238A960 + ldr r0, _0238A8DC ; =0x0238CE80 + add r3, sp, #4 + ldr r1, [r0] + add r2, r1, #0x38 + ldrsb r0, [r1, #8] + ldrh r1, [r1, #0x36] + add r2, r2, #0x400 + bl sub_0202F23C + mov r4, #1 +_0238A880: + cmp r4, #0 + ldrne r0, _0238A8DC ; =0x0238CE80 + movne r1, #7 + ldrne r0, [r0] + strne r1, [r0] + bne _0238A8D0 + bl ov27_0238A8EC + ldr r0, _0238A8DC ; =0x0238CE80 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0238A8D0 +_0238A8B0: + bl ov27_0238A928 + cmp r0, #0 + beq _0238A8D0 + bl ov27_0238A8EC + ldr r0, _0238A8DC ; =0x0238CE80 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] _0238A8D0: mov r0, #1 +_0238A8D4: add sp, sp, #0x18c ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _0238A8DC: .word 0x0238CE80 - arm_func_end ov27_0238A468 -_0238A8E0: - .byte 0x08, 0x04, 0x00, 0x00, 0x18, 0x06, 0x00, 0x00, 0xB8, 0x4D, 0x32, 0x02 +_0238A8E0: .word 0x00000408 +_0238A8E4: .word 0x00000618 +_0238A8E8: .word 0x02324DB8 arm_func_start ov27_0238A8EC ov27_0238A8EC: ; 0x0238A8EC @@ -1543,223 +1828,956 @@ ov27_0238BB54: ; 0x0238BB54 .align 2, 0 _0238BB7C: .word 0x0238CE84 arm_func_end ov27_0238BB54 -_0238BB80: - .byte 0x38, 0x40, 0x2D, 0xE9, 0x10, 0xD0, 0x4D, 0xE2, 0x68, 0x0D, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 - .byte 0x84, 0x20, 0x91, 0xE5, 0x03, 0x00, 0x52, 0xE3, 0x02, 0xF1, 0x8F, 0x90, 0x52, 0x03, 0x00, 0xEA - .byte 0x02, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x3B, 0x03, 0x00, 0xEA, 0x43, 0x03, 0x00, 0xEA - .byte 0x01, 0x00, 0xA0, 0xE3, 0x84, 0x00, 0x81, 0xE5, 0x4B, 0x03, 0x00, 0xEA, 0x00, 0x20, 0x91, 0xE5 - .byte 0x2F, 0x00, 0x52, 0xE3, 0x02, 0xF1, 0x8F, 0x90, 0x18, 0x03, 0x00, 0xEA, 0x37, 0x00, 0x00, 0xEA - .byte 0x36, 0x00, 0x00, 0xEA, 0x15, 0x03, 0x00, 0xEA, 0x14, 0x03, 0x00, 0xEA, 0x98, 0x02, 0x00, 0xEA - .byte 0x12, 0x03, 0x00, 0xEA, 0x11, 0x03, 0x00, 0xEA, 0x10, 0x03, 0x00, 0xEA, 0x0F, 0x03, 0x00, 0xEA - .byte 0x0E, 0x03, 0x00, 0xEA, 0x0D, 0x03, 0x00, 0xEA, 0x0C, 0x03, 0x00, 0xEA, 0x0B, 0x03, 0x00, 0xEA - .byte 0x35, 0x00, 0x00, 0xEA, 0x34, 0x00, 0x00, 0xEA, 0x86, 0x00, 0x00, 0xEA, 0x85, 0x00, 0x00, 0xEA - .byte 0xD3, 0x00, 0x00, 0xEA, 0xE1, 0x00, 0x00, 0xEA, 0x16, 0x01, 0x00, 0xEA, 0x03, 0x03, 0x00, 0xEA - .byte 0x02, 0x03, 0x00, 0xEA, 0x01, 0x03, 0x00, 0xEA, 0x00, 0x03, 0x00, 0xEA, 0xF9, 0x02, 0x00, 0xEA - .byte 0x51, 0x01, 0x00, 0xEA, 0xAD, 0x01, 0x00, 0xEA, 0xAC, 0x01, 0x00, 0xEA, 0xDB, 0x01, 0x00, 0xEA - .byte 0xE9, 0x01, 0x00, 0xEA, 0x12, 0x02, 0x00, 0xEA, 0xF8, 0x02, 0x00, 0xEA, 0xF7, 0x02, 0x00, 0xEA - .byte 0x7E, 0x02, 0x00, 0xEA, 0x8D, 0x02, 0x00, 0xEA, 0xF4, 0x02, 0x00, 0xEA, 0x0C, 0x02, 0x00, 0xEA - .byte 0xE1, 0x01, 0x00, 0xEA, 0x03, 0x01, 0x00, 0xEA, 0xCC, 0x00, 0x00, 0xEA, 0x4A, 0x02, 0x00, 0xEA - .byte 0x49, 0x02, 0x00, 0xEA, 0xED, 0x02, 0x00, 0xEA, 0xB8, 0x02, 0x00, 0xEA, 0xCE, 0x02, 0x00, 0xEA - .byte 0x3D, 0x01, 0x00, 0xEA, 0x00, 0x00, 0x00, 0xEA, 0xE5, 0x02, 0x00, 0xEA, 0x0C, 0x30, 0x91, 0xE5 - .byte 0x01, 0x20, 0x43, 0xE2, 0x0C, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0xEF, 0x02, 0x00, 0x1A - .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x3A, 0xFB, 0xFF, 0xEB, 0xEB, 0x02, 0x00, 0xEA - .byte 0xDD, 0x08, 0xD1, 0xE1, 0x31, 0x8D, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xE7, 0x02, 0x00, 0x1A - .byte 0x22, 0x00, 0xA0, 0xE3, 0x33, 0xFB, 0xFF, 0xEB, 0x28, 0x0C, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xDD, 0x08, 0xD0, 0xE1, 0xB2, 0x8D, 0xF2, 0xEB, 0xE0, 0x02, 0x00, 0xEA, 0x74, 0xDA, 0xF2, 0xEB - .byte 0x02, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0x0A - .byte 0x23, 0x00, 0x00, 0xEA, 0x5A, 0xDA, 0xF2, 0xEB, 0xF8, 0x0B, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3 - .byte 0x00, 0x10, 0x90, 0xE5, 0x2C, 0x30, 0xA0, 0xE3, 0x8F, 0x20, 0xC1, 0xE5, 0x00, 0x20, 0x90, 0xE5 - .byte 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5 - .byte 0xCE, 0x02, 0x00, 0xEA, 0x7D, 0xDB, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0xDA - .byte 0x10, 0x00, 0xA0, 0xE3, 0x17, 0xFB, 0xFF, 0xEB, 0xC8, 0x02, 0x00, 0xEA, 0x02, 0x00, 0x00, 0x1A - .byte 0x82, 0xDB, 0xF2, 0xEB, 0xAC, 0x1B, 0x9F, 0xE5, 0x01, 0x00, 0x00, 0xEA, 0x62, 0xDB, 0xF2, 0xEB - .byte 0xA0, 0x1B, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x18, 0x00, 0x81, 0xE5, 0x94, 0x0B, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x90, 0xE5, 0x18, 0x00, 0x91, 0xE5, 0x10, 0x10, 0x81, 0xE2, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x40, 0x08, 0xA0, 0xE1, 0x59, 0x0D, 0xF2, 0xEB, 0x0F, 0x00, 0xA0, 0xE3, 0x05, 0xFB, 0xFF, 0xEB - .byte 0xB6, 0x02, 0x00, 0xEA, 0x48, 0xDB, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xB3, 0x02, 0x00, 0x0A - .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0x8D, 0xE2, 0xB0, 0x00, 0xCD, 0xE1, 0x2E, 0xE9, 0xF1, 0xEB - .byte 0xB0, 0x00, 0xDD, 0xE1, 0x08, 0x00, 0x10, 0xE3, 0xAC, 0x02, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xC5, 0x2F, 0xF2, 0xEB, 0x48, 0xDB, 0xF2, 0xEB, 0x38, 0x1B, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5 - .byte 0x18, 0x00, 0x82, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x18, 0x00, 0x91, 0xE5, 0x10, 0x10, 0x81, 0xE2 - .byte 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0x40, 0x0D, 0xF2, 0xEB, 0x20, 0xDA, 0xF2, 0xEB - .byte 0x10, 0x0B, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x8F, 0x10, 0xC0, 0xE5 - .byte 0xC2, 0x02, 0x00, 0xEB, 0xFC, 0x0A, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5 - .byte 0x05, 0x30, 0xA0, 0xE3, 0x8F, 0x20, 0xC1, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x11, 0x20, 0xA0, 0xE3 - .byte 0x0C, 0x30, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x2E, 0x00, 0xA0, 0xE3, 0x04, 0x20, 0x81, 0xE5 - .byte 0xDC, 0xFA, 0xFF, 0xEB, 0x8D, 0x02, 0x00, 0xEA, 0xD1, 0x09, 0xD1, 0xE1, 0xD2, 0x7D, 0xF2, 0xEB - .byte 0x01, 0x00, 0x50, 0xE3, 0x43, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A - .byte 0x06, 0x00, 0x50, 0xE3, 0x2D, 0x00, 0x00, 0x0A, 0x84, 0x02, 0x00, 0xEA, 0xA4, 0x0A, 0x9F, 0xE5 - .byte 0x00, 0x20, 0x90, 0xE5, 0x00, 0x10, 0x92, 0xE5, 0x0F, 0x00, 0x51, 0xE3, 0x13, 0x00, 0x00, 0x1A - .byte 0xF4, 0x01, 0xD2, 0xE1, 0x8F, 0x03, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A - .byte 0x80, 0x0A, 0x9F, 0xE5, 0x09, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x2C, 0x10, 0xA0, 0xE3 - .byte 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x0C, 0x00, 0x00, 0xEA - .byte 0x60, 0x0A, 0x9F, 0xE5, 0x2C, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x12, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x04, 0x00, 0x00, 0xEA - .byte 0x2C, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x13, 0x10, 0xA0, 0xE3 - .byte 0x04, 0x10, 0x80, 0xE5, 0x8D, 0x02, 0x00, 0xEB, 0xE5, 0xD9, 0xF2, 0xEB, 0x24, 0x0A, 0x9F, 0xE5 - .byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x8F, 0x10, 0xC0, 0xE5, 0x87, 0x02, 0x00, 0xEB - .byte 0x10, 0x0A, 0x9F, 0xE5, 0x01, 0x30, 0xE0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x2C, 0x10, 0xA0, 0xE3 - .byte 0x8F, 0x30, 0xC2, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x57, 0x02, 0x00, 0xEA - .byte 0x7E, 0x02, 0x00, 0xEB, 0xD6, 0xD9, 0xF2, 0xEB, 0xE8, 0x09, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x8F, 0x10, 0xC0, 0xE5, 0x78, 0x02, 0x00, 0xEB, 0xD4, 0x09, 0x9F, 0xE5 - .byte 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x11, 0x30, 0xA0, 0xE3, 0x8F, 0x20, 0xC1, 0xE5 - .byte 0x00, 0x20, 0x90, 0xE5, 0x2C, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x10, 0x80, 0xE5, 0x45, 0x02, 0x00, 0xEA, 0x6C, 0x02, 0x00, 0xEB, 0xFC, 0xD9, 0xF2, 0xEB - .byte 0xA0, 0x09, 0x9F, 0xE5, 0x0E, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0x3E, 0x02, 0x00, 0xEA, 0xD2, 0x09, 0xD1, 0xE1, 0xDD, 0x89, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x3A, 0x02, 0x00, 0x1A, 0x7C, 0x09, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x09, 0xD0, 0xE1 - .byte 0xD0, 0x89, 0xF2, 0xEB, 0x6C, 0x09, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5 - .byte 0x0E, 0x00, 0xA0, 0xE3, 0x92, 0x20, 0xC1, 0xE5, 0x7E, 0xFA, 0xFF, 0xEB, 0x2F, 0x02, 0x00, 0xEA - .byte 0xD1, 0x09, 0xD1, 0xE1, 0x74, 0x7D, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x21, 0x00, 0x00, 0x0A - .byte 0x04, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x0A - .byte 0x26, 0x02, 0x00, 0xEA, 0x2C, 0x09, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x18, 0x00, 0x90, 0xE5 - .byte 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0xDA, 0x0C, 0xF2, 0xEB, 0x01, 0x00, 0xD0, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0xBC, 0x30, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0x00, 0x1A, 0xBF, 0xDA, 0xF2, 0xEB, 0x0A, 0x00, 0x00, 0xEA, 0xF4, 0x08, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x18, 0x00, 0x90, 0xE5, 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1 - .byte 0xDE, 0x0C, 0xF2, 0xEB, 0xDC, 0x08, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x10, 0x00, 0x80, 0xE2 - .byte 0xE1, 0x10, 0xF2, 0xEB, 0xB3, 0xDA, 0xF2, 0xEB, 0x34, 0x02, 0x00, 0xEB, 0x14, 0x00, 0xA0, 0xE3 - .byte 0x58, 0xFA, 0xFF, 0xEB, 0x09, 0x02, 0x00, 0xEA, 0x30, 0x02, 0x00, 0xEB, 0xB4, 0x08, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0xDD, 0x08, 0xD0, 0xE1, 0x9D, 0x8C, 0xF2, 0xEB, 0xA4, 0x08, 0x9F, 0xE5 - .byte 0x05, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x0E, 0x30, 0xA0, 0xE3, 0x0C, 0x20, 0x81, 0xE5 - .byte 0x00, 0x20, 0x90, 0xE5, 0x2E, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x10, 0x80, 0xE5, 0xF9, 0x01, 0x00, 0xEA, 0xD1, 0x09, 0xD1, 0xE1, 0x3E, 0x7D, 0xF2, 0xEB - .byte 0x01, 0x00, 0x50, 0xE3, 0x2C, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A - .byte 0x05, 0x00, 0x50, 0xE3, 0x28, 0x00, 0x00, 0x0A, 0xF0, 0x01, 0x00, 0xEA, 0x00, 0x50, 0xA0, 0xE3 - .byte 0x04, 0x40, 0x8D, 0xE2, 0x05, 0x00, 0xA0, 0xE1, 0xB5, 0xDA, 0xF2, 0xEB, 0x01, 0x00, 0x10, 0xE3 - .byte 0x10, 0x00, 0x00, 0x0A, 0x05, 0x08, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1 - .byte 0x86, 0x0C, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xDD, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x80, 0x30, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x04, 0x00, 0x00, 0x0A, 0x05, 0x08, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0xC4, 0x0C, 0xF2, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0xAC, 0x10, 0xF2, 0xEB, 0x01, 0x50, 0x85, 0xE2, 0x32, 0x00, 0x55, 0xE3 - .byte 0xE7, 0xFF, 0xFF, 0xBA, 0x99, 0x0C, 0xF2, 0xEB, 0xF1, 0xDC, 0xF2, 0xEB, 0xFB, 0x01, 0x00, 0xEB - .byte 0x78, 0xDA, 0xF2, 0xEB, 0xDC, 0x07, 0x9F, 0xE5, 0x06, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5 - .byte 0x15, 0x20, 0xA0, 0xE3, 0x0C, 0x30, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x2E, 0x00, 0xA0, 0xE3 - .byte 0x04, 0x20, 0x81, 0xE5, 0x17, 0xFA, 0xFF, 0xEB, 0xC8, 0x01, 0x00, 0xEA, 0xEF, 0x01, 0x00, 0xEB - .byte 0xB0, 0x07, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xDD, 0x08, 0xD0, 0xE1, 0x5C, 0x8C, 0xF2, 0xEB - .byte 0xA0, 0x07, 0x9F, 0xE5, 0x05, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x0E, 0x30, 0xA0, 0xE3 - .byte 0x0C, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x2E, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0xB8, 0x01, 0x00, 0xEA, 0xB9, 0xDC, 0xF2, 0xEB - .byte 0x00, 0x40, 0xA0, 0xE1, 0x9D, 0xDC, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x28, 0x00, 0x00, 0x1A - .byte 0x00, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x54, 0xE1, 0x0C, 0x00, 0x00, 0x1A, 0xF6, 0xDB, 0xF2, 0xEB - .byte 0xD6, 0x01, 0x00, 0xEB, 0x4C, 0x07, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5 - .byte 0x01, 0x30, 0xA0, 0xE3, 0x90, 0x20, 0xC1, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x2B, 0x10, 0xA0, 0xE3 - .byte 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0xA3, 0x01, 0x00, 0xEA - .byte 0xC9, 0xDC, 0xF2, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0x04, 0x00, 0xA0, 0xE1, 0x16, 0xDC, 0xF2, 0xEB - .byte 0x01, 0x00, 0x55, 0xE3, 0x02, 0x00, 0x00, 0xDA, 0x1B, 0x00, 0xA0, 0xE3, 0xE9, 0xF9, 0xFF, 0xEB - .byte 0x9A, 0x01, 0x00, 0xEA, 0xFC, 0x06, 0x9F, 0x15, 0x00, 0x00, 0x90, 0x15, 0xBC, 0x41, 0xC0, 0x11 - .byte 0x03, 0x00, 0x00, 0x1A, 0xC8, 0xDC, 0xF2, 0xEB, 0xE8, 0x16, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 - .byte 0xBC, 0x01, 0xC1, 0xE1, 0xDC, 0x06, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0xFC, 0x01, 0xD1, 0xE1 - .byte 0x10, 0x10, 0x81, 0xE2, 0x72, 0x0F, 0xF2, 0xEB, 0x1A, 0x00, 0xA0, 0xE3, 0xD9, 0xF9, 0xFF, 0xEB - .byte 0x8A, 0x01, 0x00, 0xEA, 0x7E, 0xDC, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x87, 0x01, 0x00, 0x0A - .byte 0x00, 0x00, 0xA0, 0xE3, 0x02, 0x10, 0x8D, 0xE2, 0xB2, 0x00, 0xCD, 0xE1, 0x02, 0xE8, 0xF1, 0xEB - .byte 0xB2, 0x00, 0xDD, 0xE1, 0x08, 0x00, 0x10, 0xE3, 0x80, 0x01, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x99, 0x2E, 0xF2, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xF3, 0xDB, 0xF2, 0xEB, 0x84, 0x26, 0x9F, 0xE5 - .byte 0x84, 0x16, 0x9F, 0xE5, 0x00, 0x00, 0x92, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0xBC, 0x41, 0xC0, 0xE1 - .byte 0x00, 0xC0, 0x92, 0xE5, 0x00, 0x40, 0x91, 0xE5, 0xFC, 0x01, 0xDC, 0xE1, 0x80, 0x00, 0x84, 0xE0 - .byte 0x03, 0x0C, 0x80, 0xE2, 0xFA, 0x08, 0xD0, 0xE1, 0xB4, 0x01, 0xCC, 0xE1, 0x00, 0x40, 0x92, 0xE5 - .byte 0x00, 0x10, 0x91, 0xE5, 0xFC, 0x01, 0xD4, 0xE1, 0x80, 0x00, 0x81, 0xE0, 0x0B, 0x0C, 0x80, 0xE2 - .byte 0xBA, 0x05, 0xD0, 0xE1, 0xB2, 0x01, 0xC4, 0xE1, 0x00, 0x00, 0x92, 0xE5, 0x10, 0x30, 0xC0, 0xE5 - .byte 0xAD, 0xDB, 0xF2, 0xEB, 0x8D, 0x01, 0x00, 0xEB, 0x28, 0x06, 0x9F, 0xE5, 0x01, 0x30, 0xE0, 0xE3 - .byte 0x00, 0x10, 0x90, 0xE5, 0x1C, 0x20, 0xA0, 0xE3, 0x90, 0x30, 0xC1, 0xE5, 0x00, 0x10, 0x90, 0xE5 - .byte 0x2B, 0x00, 0xA0, 0xE3, 0x04, 0x20, 0x81, 0xE5, 0xAA, 0xF9, 0xFF, 0xEB, 0x5B, 0x01, 0x00, 0xEA - .byte 0xD1, 0x09, 0xD1, 0xE1, 0xA0, 0x7C, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x24, 0x00, 0x00, 0x0A - .byte 0x03, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x50, 0xE3, 0x12, 0x00, 0x00, 0x0A - .byte 0x52, 0x01, 0x00, 0xEA, 0x79, 0x01, 0x00, 0xEB, 0x97, 0xDB, 0xF2, 0xEB, 0x77, 0x01, 0x00, 0xEB - .byte 0xD0, 0x05, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x90, 0x20, 0xC1, 0xE5 - .byte 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x1A, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0xA0, 0x03 - .byte 0x1E, 0x00, 0xA0, 0x13, 0x04, 0x00, 0x81, 0xE5, 0xA8, 0x05, 0x9F, 0xE5, 0x2B, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x40, 0x01, 0x00, 0xEA, 0x67, 0x01, 0x00, 0xEB - .byte 0x85, 0xDB, 0xF2, 0xEB, 0x65, 0x01, 0x00, 0xEB, 0x88, 0x05, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3 - .byte 0x00, 0x10, 0x90, 0xE5, 0x1C, 0x30, 0xA0, 0xE3, 0x90, 0x20, 0xC1, 0xE5, 0x00, 0x20, 0x90, 0xE5 - .byte 0x2B, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0x32, 0x01, 0x00, 0xEA, 0x5C, 0x05, 0x9F, 0xE5, 0x19, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x10, 0x80, 0xE5, 0x55, 0x01, 0x00, 0xEB, 0x04, 0xDC, 0xF2, 0xEB, 0x2B, 0x01, 0x00, 0xEA - .byte 0xD2, 0x09, 0xD1, 0xE1, 0xCA, 0x88, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x27, 0x01, 0x00, 0x1A - .byte 0x30, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x09, 0xD0, 0xE1, 0xBD, 0x88, 0xF2, 0xEB - .byte 0x20, 0x05, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x19, 0x00, 0xA0, 0xE3 - .byte 0x92, 0x20, 0xC1, 0xE5, 0x6B, 0xF9, 0xFF, 0xEB, 0x1C, 0x01, 0x00, 0xEA, 0xD1, 0x09, 0xD1, 0xE1 - .byte 0x61, 0x7C, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x15, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x50, 0xE3 - .byte 0x02, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x50, 0xE3, 0x11, 0x00, 0x00, 0x0A, 0x13, 0x01, 0x00, 0xEA - .byte 0xE0, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xFC, 0x01, 0xD0, 0xE1, 0x4C, 0x0F, 0xF2, 0xEB - .byte 0x2B, 0xDC, 0xF2, 0xEB, 0x35, 0x01, 0x00, 0xEB, 0xC8, 0x04, 0x9F, 0xE5, 0x05, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x90, 0xE5, 0x1F, 0x30, 0xA0, 0xE3, 0x0C, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5 - .byte 0x2E, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0x02, 0x01, 0x00, 0xEA, 0x29, 0x01, 0x00, 0xEB, 0x98, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xDD, 0x08, 0xD0, 0xE1, 0x96, 0x8B, 0xF2, 0xEB, 0x88, 0x04, 0x9F, 0xE5, 0x05, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x90, 0xE5, 0x18, 0x30, 0xA0, 0xE3, 0x0C, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5 - .byte 0x2E, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0xF2, 0x00, 0x00, 0xEA, 0xDD, 0x08, 0xD1, 0xE1, 0x38, 0x8B, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0xEE, 0x00, 0x00, 0x1A, 0x4C, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x09, 0xD0, 0xE1 - .byte 0x31, 0x7C, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x27, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x50, 0xE3 - .byte 0x02, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x50, 0xE3, 0x23, 0x00, 0x00, 0x0A, 0xE3, 0x00, 0x00, 0xEA - .byte 0x00, 0x50, 0xA0, 0xE3, 0x0A, 0x40, 0x8D, 0xE2, 0x05, 0x08, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1 - .byte 0x20, 0xDC, 0xF2, 0xEB, 0x01, 0x00, 0x10, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x05, 0x08, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0xAB, 0x0E, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x02, 0x00, 0x00, 0x0A, 0x05, 0x08, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0x23, 0x0F, 0xF2, 0xEB - .byte 0x01, 0x50, 0x85, 0xE2, 0xFA, 0x0F, 0x55, 0xE3, 0xEE, 0xFF, 0xFF, 0xBA, 0x93, 0x0B, 0xF2, 0xEB - .byte 0xD5, 0x0E, 0xF2, 0xEB, 0x73, 0xD9, 0xF2, 0xEB, 0xF4, 0x00, 0x00, 0xEB, 0xE8, 0xDB, 0xF2, 0xEB - .byte 0xC0, 0x03, 0x9F, 0xE5, 0x05, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x20, 0x30, 0xA0, 0xE3 - .byte 0x0C, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x2E, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0xC0, 0x00, 0x00, 0xEA, 0xE7, 0x00, 0x00, 0xEB - .byte 0x90, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xDD, 0x08, 0xD0, 0xE1, 0x54, 0x8B, 0xF2, 0xEB - .byte 0x80, 0x03, 0x9F, 0xE5, 0x05, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x19, 0x30, 0xA0, 0xE3 - .byte 0x0C, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x2E, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0xB0, 0x00, 0x00, 0xEA, 0xD1, 0x09, 0xD1, 0xE1 - .byte 0xF5, 0x7B, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x15, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x50, 0xE3 - .byte 0x02, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x50, 0xE3, 0x11, 0x00, 0x00, 0x0A, 0xA7, 0x00, 0x00, 0xEA - .byte 0x30, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xFC, 0x01, 0xD0, 0xE1, 0xE0, 0x0E, 0xF2, 0xEB - .byte 0xBF, 0xDB, 0xF2, 0xEB, 0xC9, 0x00, 0x00, 0xEB, 0x18, 0x03, 0x9F, 0xE5, 0x05, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x90, 0xE5, 0x2A, 0x30, 0xA0, 0xE3, 0x0C, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5 - .byte 0x2E, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0x96, 0x00, 0x00, 0xEA, 0xBD, 0x00, 0x00, 0xEB, 0xE8, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xDD, 0x08, 0xD0, 0xE1, 0x2A, 0x8B, 0xF2, 0xEB, 0xD8, 0x02, 0x9F, 0xE5, 0x05, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x90, 0xE5, 0x01, 0x30, 0xA0, 0xE3, 0x0C, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5 - .byte 0x2E, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0x86, 0x00, 0x00, 0xEA, 0xAE, 0x3F, 0xFD, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x84, 0x00, 0x00, 0xEA - .byte 0xDD, 0x08, 0xD1, 0xE1, 0xC9, 0x8A, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x7F, 0x00, 0x00, 0x1A - .byte 0x90, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xDD, 0x08, 0xD0, 0xE1, 0x4C, 0x8B, 0xF2, 0xEB - .byte 0x80, 0x02, 0x9F, 0xE5, 0x30, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x20, 0x81, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0xDD, 0x08, 0xD0, 0xE1, 0x0D, 0x8B, 0xF2, 0xEB, 0x73, 0x00, 0x00, 0xEA - .byte 0xD1, 0x09, 0xD1, 0xE1, 0xB8, 0x7B, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x54, 0x12, 0x9F, 0x15 - .byte 0x00, 0x10, 0x91, 0x15, 0x20, 0x00, 0x81, 0x15, 0x06, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90 - .byte 0x6A, 0x00, 0x00, 0xEA, 0x69, 0x00, 0x00, 0xEA, 0x24, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA - .byte 0x13, 0x00, 0x00, 0xEA, 0x65, 0x00, 0x00, 0xEA, 0x64, 0x00, 0x00, 0xEA, 0x1B, 0x00, 0x00, 0xEA - .byte 0x8A, 0x00, 0x00, 0xEB, 0xC8, 0x09, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A - .byte 0x05, 0x00, 0xA0, 0xE3, 0xAB, 0xF8, 0xFF, 0xEB, 0x5C, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x22, 0xDB, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x08, 0x00, 0xA0, 0xE3 - .byte 0xA4, 0xF8, 0xFF, 0xEB, 0x55, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0xA0, 0xE3, 0xA1, 0xF8, 0xFF, 0xEB - .byte 0x52, 0x00, 0x00, 0xEA, 0x79, 0x00, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0xFF, 0xDA, 0xF2, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x07, 0x00, 0xA0, 0xE3, 0x99, 0xF8, 0xFF, 0xEB - .byte 0x4A, 0x00, 0x00, 0xEA, 0x16, 0x00, 0xA0, 0xE3, 0x96, 0xF8, 0xFF, 0xEB, 0x47, 0x00, 0x00, 0xEA - .byte 0x6E, 0x00, 0x00, 0xEB, 0x02, 0x00, 0xA0, 0xE3, 0x92, 0xF8, 0xFF, 0xEB, 0x43, 0x00, 0x00, 0xEA - .byte 0x6A, 0x00, 0x00, 0xEB, 0x28, 0x00, 0xA0, 0xE3, 0x8E, 0xF8, 0xFF, 0xEB, 0x3F, 0x00, 0x00, 0xEA - .byte 0x08, 0x20, 0x91, 0xE5, 0x01, 0x20, 0x82, 0xE2, 0x08, 0x20, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5 - .byte 0x08, 0x00, 0x91, 0xE5, 0x01, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x50, 0xE3 - .byte 0x06, 0x00, 0x00, 0x0A, 0x35, 0x00, 0x00, 0xEA, 0x5C, 0x00, 0x00, 0xEB, 0x64, 0x01, 0x9F, 0xE5 - .byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x90, 0x10, 0xC0, 0xE5, 0x2F, 0x00, 0x00, 0xEA - .byte 0x04, 0x00, 0x91, 0xE5, 0x7B, 0xF8, 0xFF, 0xEB, 0x48, 0x01, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x08, 0x10, 0x80, 0xE5, 0x28, 0x00, 0x00, 0xEA, 0x08, 0x20, 0x91, 0xE5 - .byte 0x01, 0x20, 0x82, 0xE2, 0x08, 0x20, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x08, 0x00, 0x91, 0xE5 - .byte 0x01, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A - .byte 0x1E, 0x00, 0x00, 0xEA, 0x45, 0x00, 0x00, 0xEB, 0x08, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x8F, 0x10, 0xC0, 0xE5, 0x18, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x91, 0xE5 - .byte 0x64, 0xF8, 0xFF, 0xEB, 0xEC, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x08, 0x10, 0x80, 0xE5, 0x11, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x91, 0xE5, 0x5D, 0xF8, 0xFF, 0xEB - .byte 0x0E, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x81, 0xE5, 0x0B, 0x00, 0x00, 0xEA - .byte 0xDD, 0x08, 0xD1, 0xE1, 0x51, 0x8A, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A - .byte 0xB0, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xDD, 0x08, 0xD0, 0xE1, 0xD4, 0x8A, 0xF2, 0xEB - .byte 0xA0, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x4D, 0xF8, 0xFF, 0xEB - .byte 0x00, 0x00, 0xA0, 0xE3, 0x03, 0x00, 0x50, 0xE3, 0x1F, 0x00, 0x00, 0x1A, 0x84, 0x00, 0x9F, 0xE5 - .byte 0x02, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x84, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xDD, 0x08, 0xD0, 0xE1, 0x8E, 0x8A, 0xF2, 0xEB, 0x68, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xDD, 0x08, 0xD0, 0xE1, 0xB4, 0x6E, 0xF2, 0xEB, 0x13, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3 - .byte 0x84, 0x00, 0x81, 0xE5, 0x03, 0xDE, 0xF2, 0xEB, 0xC3, 0xD8, 0xF2, 0xEB, 0x44, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0xDD, 0x08, 0xD0, 0xE1, 0x22, 0x8A, 0xF2, 0xEB, 0x0A, 0x00, 0x00, 0xEA - .byte 0xB4, 0x01, 0x91, 0xE5, 0x01, 0x0C, 0x10, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x40, 0x02, 0x91, 0xE5 - .byte 0x3C, 0x22, 0x91, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x32, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x00, 0xEA - .byte 0x60, 0x69, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x10, 0xD0, 0x8D, 0xE2, 0x38, 0x80, 0xBD, 0xE8, 0x84, 0xCE, 0x38, 0x02, 0xB8, 0xF6, 0x0A, 0x02 + + arm_func_start ov27_0238BB80 +ov27_0238BB80: ; 0x0238BB80 + stmdb sp!, {r3, r4, r5, lr} + sub sp, sp, #0x10 + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r1, [r0] + ldr r2, [r1, #0x84] + cmp r2, #3 + addls pc, pc, r2, lsl #2 + b _0238C8EC +_0238BBA0: ; jump table + b _0238BBB0 ; case 0 + b _0238BBBC ; case 1 + b _0238C89C ; case 2 + b _0238C8C0 ; case 3 +_0238BBB0: + mov r0, #1 + str r0, [r1, #0x84] + b _0238C8EC +_0238BBBC: + ldr r2, [r1] + cmp r2, #0x2f + addls pc, pc, r2, lsl #2 + b _0238C830 +_0238BBCC: ; jump table + b _0238BCB0 ; case 0 + b _0238BCB0 ; case 1 + b _0238C830 ; case 2 + b _0238C830 ; case 3 + b _0238C644 ; case 4 + b _0238C830 ; case 5 + b _0238C830 ; case 6 + b _0238C830 ; case 7 + b _0238C830 ; case 8 + b _0238C830 ; case 9 + b _0238C830 ; case 10 + b _0238C830 ; case 11 + b _0238C830 ; case 12 + b _0238BCDC ; case 13 + b _0238BCDC ; case 14 + b _0238BE28 ; case 15 + b _0238BE28 ; case 16 + b _0238BF64 ; case 17 + b _0238BFA0 ; case 18 + b _0238C078 ; case 19 + b _0238C830 ; case 20 + b _0238C830 ; case 21 + b _0238C830 ; case 22 + b _0238C830 ; case 23 + b _0238C818 ; case 24 + b _0238C17C ; case 25 + b _0238C2F0 ; case 26 + b _0238C2F0 ; case 27 + b _0238C3B0 ; case 28 + b _0238C3EC ; case 29 + b _0238C494 ; case 30 + b _0238C830 ; case 31 + b _0238C830 ; case 32 + b _0238C650 ; case 33 + b _0238C690 ; case 34 + b _0238C830 ; case 35 + b _0238C494 ; case 36 + b _0238C3EC ; case 37 + b _0238C078 ; case 38 + b _0238BFA0 ; case 39 + b _0238C59C ; case 40 + b _0238C59C ; case 41 + b _0238C830 ; case 42 + b _0238C760 ; case 43 + b _0238C7BC ; case 44 + b _0238C17C ; case 45 + b _0238BC8C ; case 46 + b _0238C824 ; case 47 +_0238BC8C: + ldr r3, [r1, #0xc] + sub r2, r3, #1 + str r2, [r1, #0xc] + cmp r3, #0 + bne _0238C860 + ldr r0, [r0] + ldr r0, [r0, #4] + bl ov27_0238A998 + b _0238C860 +_0238BCB0: + ldrsb r0, [r1, #0x8d] + bl IsDBoxActive + cmp r0, #0 + bne _0238C860 + mov r0, #0x22 + bl ov27_0238A998 + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl ShowDBox + b _0238C860 +_0238BCDC: + bl sub_020426B4 + cmp r0, #2 + beq _0238BCF4 + cmp r0, #3 + beq _0238BD24 + b _0238BD84 +_0238BCF4: + bl sub_02042664 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r2, #1 + ldr r1, [r0] + mov r3, #0x2c + strb r2, [r1, #0x8f] + ldr r2, [r0] + mov r1, #1 + str r3, [r2] + ldr r0, [r0] + str r1, [r0, #4] + b _0238C860 +_0238BD24: + bl sub_02042B20 + cmp r0, #1 + ble _0238BD3C + mov r0, #0x10 + bl ov27_0238A998 + b _0238C860 +_0238BD3C: + bne _0238BD4C + bl sub_02042B50 + ldr r1, _0238C8F8 ; =0x0238CE84 + b _0238BD54 +_0238BD4C: + bl sub_02042ADC + ldr r1, _0238C8F8 ; =0x0238CE84 +_0238BD54: + ldr r1, [r1] + str r0, [r1, #0x18] + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r1, [r0] + ldr r0, [r1, #0x18] + add r1, r1, #0x10 + mov r0, r0, lsl #0x10 + mov r0, r0, asr #0x10 + bl CopyItemAtIdx + mov r0, #0xf + bl ov27_0238A998 + b _0238C860 +_0238BD84: + bl sub_02042AAC + cmp r0, #0 + beq _0238C860 + mov r0, #0 + add r1, sp, #0 + strh r0, [sp] + bl GetPressedButtons + ldrh r0, [sp] + tst r0, #8 + beq _0238C860 + mov r0, #0 + bl sub_02017CCC + bl sub_02042ADC + ldr r1, _0238C8F8 ; =0x0238CE84 + ldr r2, [r1] + str r0, [r2, #0x18] + ldr r1, [r1] + ldr r0, [r1, #0x18] + add r1, r1, #0x10 + mov r0, r0, lsl #0x10 + mov r0, r0, asr #0x10 + bl CopyItemAtIdx + bl sub_02042664 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x8f] + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r2, #1 + ldr r1, [r0] + mov r3, #5 + strb r2, [r1, #0x8f] + ldr r1, [r0] + mov r2, #0x11 + str r3, [r1, #0xc] + ldr r1, [r0] + mov r0, #0x2e + str r2, [r1, #4] + bl ov27_0238A998 + b _0238C860 +_0238BE28: + ldrsb r0, [r1, #0x91] + bl GetNormalMenuResult + cmp r0, #1 + beq _0238BF48 + cmp r0, #2 + beq _0238BE4C + cmp r0, #6 + beq _0238BF00 + b _0238C860 +_0238BE4C: + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r2, [r0] + ldr r1, [r2] + cmp r1, #0xf + bne _0238BEB0 + ldrsh r0, [r2, #0x14] + bl sub_0200CCA8 + cmp r0, #0 + bne _0238BE90 + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r3, #9 + ldr r2, [r0] + mov r1, #0x2c + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238BEC4 +_0238BE90: + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r3, #0x2c + ldr r2, [r0] + mov r1, #0x12 + str r3, [r2] + ldr r0, [r0] + str r1, [r0, #4] + b _0238BEC4 +_0238BEB0: + mov r1, #0x2c + str r1, [r2] + ldr r0, [r0] + mov r1, #0x13 + str r1, [r0, #4] +_0238BEC4: + bl ov27_0238C900 + bl sub_02042664 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x8f] + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r3, #1 + ldr r2, [r0] + mov r1, #0x2c + strb r3, [r2, #0x8f] + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238BF00: + bl ov27_0238C900 + bl sub_02042664 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x8f] + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r2, #1 + ldr r1, [r0] + mov r3, #0x11 + strb r2, [r1, #0x8f] + ldr r2, [r0] + mov r1, #0x2c + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238BF48: + bl ov27_0238C900 + bl sub_02042744 + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r1, #0xe + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238BF64: + ldrsb r0, [r1, #0x92] + bl sub_0202E6E4 + cmp r0, #0 + bne _0238C860 + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x92] + bl sub_0202E6C8 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r2, #1 + ldr r1, [r0] + mov r0, #0xe + strb r2, [r1, #0x92] + bl ov27_0238A998 + b _0238C860 +_0238BFA0: + ldrsb r0, [r1, #0x91] + bl GetNormalMenuResult + cmp r0, #1 + beq _0238C038 + cmp r0, #4 + beq _0238BFC4 + cmp r0, #5 + beq _0238C038 + b _0238C860 +_0238BFC4: + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldr r0, [r0, #0x18] + mov r0, r0, lsl #0x10 + mov r0, r0, asr #0x10 + bl GetItemAtIdx + ldrb r0, [r0, #1] + cmp r0, #0 + beq _0238BFFC + bl sub_020582E0 + cmp r0, #0 + bne _0238BFFC + bl sub_02042AF8 + b _0238C028 +_0238BFFC: + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldr r0, [r0, #0x18] + mov r0, r0, lsl #0x10 + mov r0, r0, asr #0x10 + bl RemoveItemNoHole + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + add r0, r0, #0x10 + bl sub_020103AC + bl sub_02042AF8 +_0238C028: + bl ov27_0238C900 + mov r0, #0x14 + bl ov27_0238A998 + b _0238C860 +_0238C038: + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl sub_0202F2C4 + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r2, #5 + ldr r1, [r0] + mov r3, #0xe + str r2, [r1, #0xc] + ldr r2, [r0] + mov r1, #0x2e + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238C078: + ldrsb r0, [r1, #0x91] + bl GetNormalMenuResult + cmp r0, #1 + beq _0238C13C + cmp r0, #4 + beq _0238C09C + cmp r0, #5 + beq _0238C13C + b _0238C860 +_0238C09C: + mov r5, #0 + add r4, sp, #4 +_0238C0A4: + mov r0, r5 + bl sub_02042B84 + tst r0, #1 + beq _0238C0F8 + mov r0, r5, lsl #0x10 + mov r1, r4 + mov r0, r0, asr #0x10 + bl CopyItemAtIdx + cmp r0, #0 + beq _0238C0F8 + ldrb r0, [sp, #5] + cmp r0, #0 + beq _0238C0E4 + bl sub_020582E0 + cmp r0, #0 + beq _0238C0F8 +_0238C0E4: + mov r0, r5, lsl #0x10 + mov r0, r0, asr #0x10 + bl RemoveItem + mov r0, r4 + bl sub_020103AC +_0238C0F8: + add r5, r5, #1 + cmp r5, #0x32 + blt _0238C0A4 + bl RemoveEmptyItemsInBag + bl sub_020434D4 + bl ov27_0238C900 + bl sub_02042AF8 + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r3, #6 + ldr r1, [r0] + mov r2, #0x15 + str r3, [r1, #0xc] + ldr r1, [r0] + mov r0, #0x2e + str r2, [r1, #4] + bl ov27_0238A998 + b _0238C860 +_0238C13C: + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl sub_0202F2C4 + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r2, #5 + ldr r1, [r0] + mov r3, #0xe + str r2, [r1, #0xc] + ldr r2, [r0] + mov r1, #0x2e + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238C17C: + bl sub_02043468 + mov r4, r0 + bl sub_02043400 + cmp r0, #0 + bne _0238C234 + mvn r0, #0 + cmp r4, r0 + bne _0238C1D0 + bl sub_0204317C + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r2, #1 + ldr r1, [r0] + mov r3, #1 + strb r2, [r1, #0x90] + ldr r2, [r0] + mov r1, #0x2b + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238C1D0: + bl sub_020434FC + mov r5, r0 + mov r0, r4 + bl sub_0204323C + cmp r5, #1 + ble _0238C1F4 + mov r0, #0x1b + bl ov27_0238A998 + b _0238C860 +_0238C1F4: + ldrne r0, _0238C8F8 ; =0x0238CE84 + ldrne r0, [r0] + strneh r4, [r0, #0x1c] + bne _0238C214 + bl sub_0204352C + ldr r1, _0238C8F8 ; =0x0238CE84 + ldr r1, [r1] + strh r0, [r1, #0x1c] +_0238C214: + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r1, [r0] + ldrsh r0, [r1, #0x1c] + add r1, r1, #0x10 + bl sub_0200FFF4 + mov r0, #0x1a + bl ov27_0238A998 + b _0238C860 +_0238C234: + bl sub_02043434 + cmp r0, #0 + beq _0238C860 + mov r0, #0 + add r1, sp, #2 + strh r0, [sp, #2] + bl GetPressedButtons + ldrh r0, [sp, #2] + tst r0, #8 + beq _0238C860 + mov r0, #0 + bl sub_02017CCC + mov r0, r4 + bl sub_0204323C + ldr r2, _0238C8F8 ; =0x0238CE84 + ldr r1, _0238C8FC ; =0x020AF6B8 + ldr r0, [r2] + mov r3, #0 + strh r4, [r0, #0x1c] + ldr ip, [r2] + ldr r4, [r1] + ldrsh r0, [ip, #0x1c] + add r0, r4, r0, lsl #1 + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8a] + strh r0, [ip, #0x14] + ldr r4, [r2] + ldr r1, [r1] + ldrsh r0, [r4, #0x1c] + add r0, r1, r0, lsl #1 + add r0, r0, #0xb00 + ldrh r0, [r0, #0x5a] + strh r0, [r4, #0x12] + ldr r0, [r2] + strb r3, [r0, #0x10] + bl sub_0204317C + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r3, #1 + ldr r1, [r0] + mov r2, #0x1c + strb r3, [r1, #0x90] + ldr r1, [r0] + mov r0, #0x2b + str r2, [r1, #4] + bl ov27_0238A998 + b _0238C860 +_0238C2F0: + ldrsb r0, [r1, #0x91] + bl GetNormalMenuResult + cmp r0, #1 + beq _0238C394 + cmp r0, #3 + beq _0238C314 + cmp r0, #6 + beq _0238C35C + b _0238C860 +_0238C314: + bl ov27_0238C900 + bl sub_0204317C + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r2, #1 + ldr r1, [r0] + strb r2, [r1, #0x90] + ldr r1, [r0] + ldr r0, [r1] + cmp r0, #0x1a + moveq r0, #0x1d + movne r0, #0x1e + str r0, [r1, #4] + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r1, #0x2b + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238C35C: + bl ov27_0238C900 + bl sub_0204317C + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r2, #1 + ldr r1, [r0] + mov r3, #0x1c + strb r2, [r1, #0x90] + ldr r2, [r0] + mov r1, #0x2b + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238C394: + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r1, #0x19 + ldr r0, [r0] + str r1, [r0] + bl ov27_0238C900 + bl sub_020433C0 + b _0238C860 +_0238C3B0: + ldrsb r0, [r1, #0x92] + bl sub_0202E6E4 + cmp r0, #0 + bne _0238C860 + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x92] + bl sub_0202E6C8 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r2, #1 + ldr r1, [r0] + mov r0, #0x19 + strb r2, [r1, #0x92] + bl ov27_0238A998 + b _0238C860 +_0238C3EC: + ldrsb r0, [r1, #0x91] + bl GetNormalMenuResult + cmp r0, #1 + beq _0238C454 + cmp r0, #4 + beq _0238C410 + cmp r0, #5 + beq _0238C454 + b _0238C860 +_0238C410: + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsh r0, [r0, #0x1c] + bl sub_02010154 + bl sub_020434D4 + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r2, #5 + ldr r1, [r0] + mov r3, #0x1f + str r2, [r1, #0xc] + ldr r2, [r0] + mov r1, #0x2e + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238C454: + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl sub_0202F2C4 + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r2, #5 + ldr r1, [r0] + mov r3, #0x18 + str r2, [r1, #0xc] + ldr r2, [r0] + mov r1, #0x2e + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238C494: + ldrsb r0, [r1, #0x8d] + bl IsDBoxActive + cmp r0, #0 + bne _0238C860 + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x91] + bl GetNormalMenuResult + cmp r0, #1 + beq _0238C55C + cmp r0, #4 + beq _0238C4D0 + cmp r0, #5 + beq _0238C55C + b _0238C860 +_0238C4D0: + mov r5, #0 + add r4, sp, #0xa +_0238C4D8: + mov r0, r5, lsl #0x10 + mov r0, r0, asr #0x10 + bl sub_02043568 + tst r0, #1 + beq _0238C510 + mov r0, r5, lsl #0x10 + mov r1, r4 + mov r0, r0, asr #0x10 + bl sub_0200FFAC + cmp r0, #0 + beq _0238C510 + mov r0, r5, lsl #0x10 + mov r0, r0, asr #0x10 + bl sub_020101A0 +_0238C510: + add r5, r5, #1 + cmp r5, #0x3e8 + blt _0238C4D8 + bl RemoveEmptyItemsInBag + bl sub_0201007C + bl sub_02042AF8 + bl ov27_0238C900 + bl sub_020434D4 + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r2, #5 + ldr r1, [r0] + mov r3, #0x20 + str r2, [r1, #0xc] + ldr r2, [r0] + mov r1, #0x2e + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238C55C: + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl sub_0202F2C4 + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r2, #5 + ldr r1, [r0] + mov r3, #0x19 + str r2, [r1, #0xc] + ldr r2, [r0] + mov r1, #0x2e + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238C59C: + ldrsb r0, [r1, #0x91] + bl GetNormalMenuResult + cmp r0, #1 + beq _0238C604 + cmp r0, #4 + beq _0238C5C0 + cmp r0, #5 + beq _0238C604 + b _0238C860 +_0238C5C0: + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsh r0, [r0, #0x1c] + bl sub_02010154 + bl sub_020434D4 + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r2, #5 + ldr r1, [r0] + mov r3, #0x2a + str r2, [r1, #0xc] + ldr r2, [r0] + mov r1, #0x2e + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238C604: + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl sub_0202F2C4 + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r2, #5 + ldr r1, [r0] + mov r3, #1 + str r2, [r1, #0xc] + ldr r2, [r0] + mov r1, #0x2e + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238C860 +_0238C644: + bl ov11_022DC504 + mov r0, #3 + b _0238C864 +_0238C650: + ldrsb r0, [r1, #0x8d] + bl IsDBoxActive + cmp r0, #0 + bne _0238C860 + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl ShowDBox + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r2, #0x30 + ldr r1, [r0] + str r2, [r1] + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl sub_0202F2C4 + b _0238C860 +_0238C690: + ldrsb r0, [r1, #0x91] + bl GetNormalMenuResult + cmp r0, #1 + ldrne r1, _0238C8F8 ; =0x0238CE84 + ldrne r1, [r1] + strne r0, [r1, #0x20] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _0238C860 +_0238C6B4: ; jump table + b _0238C860 ; case 0 + b _0238C750 ; case 1 + b _0238C6D0 ; case 2 + b _0238C714 ; case 3 + b _0238C860 ; case 4 + b _0238C860 ; case 5 + b _0238C740 ; case 6 +_0238C6D0: + bl ov27_0238C900 + bl GetNbItemsInBag + cmp r0, #0 + bne _0238C6EC + mov r0, #5 + bl ov27_0238A998 + b _0238C860 +_0238C6EC: + mov r0, #0 + bl sub_02043380 + cmp r0, #0 + beq _0238C708 + mov r0, #8 + bl ov27_0238A998 + b _0238C860 +_0238C708: + mov r0, #0xb + bl ov27_0238A998 + b _0238C860 +_0238C714: + bl ov27_0238C900 + mov r0, #1 + bl sub_02043320 + cmp r0, #0 + beq _0238C734 + mov r0, #7 + bl ov27_0238A998 + b _0238C860 +_0238C734: + mov r0, #0x16 + bl ov27_0238A998 + b _0238C860 +_0238C740: + bl ov27_0238C900 + mov r0, #2 + bl ov27_0238A998 + b _0238C860 +_0238C750: + bl ov27_0238C900 + mov r0, #0x28 + bl ov27_0238A998 + b _0238C860 +_0238C760: + ldr r2, [r1, #8] + add r2, r2, #1 + str r2, [r1, #8] + ldr r1, [r0] + ldr r0, [r1, #8] + cmp r0, #1 + beq _0238C788 + cmp r0, #3 + beq _0238C7A0 + b _0238C860 +_0238C788: + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x90] + b _0238C860 +_0238C7A0: + ldr r0, [r1, #4] + bl ov27_0238A998 + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #8] + b _0238C860 +_0238C7BC: + ldr r2, [r1, #8] + add r2, r2, #1 + str r2, [r1, #8] + ldr r1, [r0] + ldr r0, [r1, #8] + cmp r0, #1 + beq _0238C7E4 + cmp r0, #3 + beq _0238C7FC + b _0238C860 +_0238C7E4: + bl ov27_0238C900 + ldr r0, _0238C8F8 ; =0x0238CE84 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x8f] + b _0238C860 +_0238C7FC: + ldr r0, [r1, #4] + bl ov27_0238A998 + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #8] + b _0238C860 +_0238C818: + ldr r0, [r1, #4] + bl ov27_0238A998 + b _0238C860 +_0238C824: + mov r0, #0xe + str r0, [r1] + b _0238C860 +_0238C830: + ldrsb r0, [r1, #0x8d] + bl IsDBoxActive + cmp r0, #0 + bne _0238C860 + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl ShowDBox + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldr r0, [r0, #4] + bl ov27_0238A998 +_0238C860: + mov r0, #0 +_0238C864: + cmp r0, #3 + bne _0238C8EC + ldr r0, _0238C8F8 ; =0x0238CE84 + mov r2, #2 + ldr r1, [r0] + str r2, [r1, #0x84] + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl sub_0202F2C4 + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl sub_0202836C + b _0238C8EC +_0238C89C: + mov r0, #3 + str r0, [r1, #0x84] + bl sub_020440B8 + bl sub_02042BBC + ldr r0, _0238C8F8 ; =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl FreeDBox + b _0238C8EC +_0238C8C0: + ldr r0, [r1, #0x1b4] + tst r0, #0x100 + beq _0238C8E0 + ldr r0, [r1, #0x240] + ldr r2, [r1, #0x23c] + mov r1, #0 + blx r2 + b _0238C8E4 +_0238C8E0: + bl ov00_022E6E68 +_0238C8E4: + mov r0, #4 + b _0238C8F0 +_0238C8EC: + mov r0, #1 +_0238C8F0: + add sp, sp, #0x10 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 +_0238C8F8: .word 0x0238CE84 +_0238C8FC: .word 0x020AF6B8 + arm_func_end ov27_0238BB80 arm_func_start ov27_0238C900 ov27_0238C900: ; 0x0238C900